![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
--排序(聚集索引)
create clustered index inx_entry_stock_bi on entry_stock_d(entry_stock_bi)
--创建非聚集索引
create nonclustered index inx_entry_stock_on entry_stock_d(entry_stock_bi)
--主键
alter table entry_stock_d add primary key nonclustered--主键且非聚集
(
entry_stock_bi,aid
)
select * from sysobjects where parent_obj in(select id from sysobjects where xtype='U' and name='saleticket_currency_d')
alter table saleticket_currency_d drop constraint PK__saleticket_curre__1F8E9120
alter table saleticket_currency_d alter column card_id varchar(20) not null
alter table saleticket_currency_d add constraint PK__saleticket_curre__1F8E9120 primary key nonclustered(saleticket_bi,currency_id,card_id)
create clustered index pk__tb_d_seq on tb_d(tab_id,seq)
如何测试sql语句性能,提高执行效率
有时候我们经常为我们的sql语句执行效率低下发愁,反复优化后,可还是得不到提高
那么你就用这条语句找出你sql到底是在哪里慢了
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
示例:
SET STATISTICS io ON
SET STATISTICS time ON
go
---你要测试的sql语句
select top 100 * from TBL_Cot_RecStaticList
go
SET STATISTICS profile OFF
SET STATISTICS io OFF
SET STATISTICS time OFF
关于sql语句的执行效率测试
在网上找了好久都没有找到关于可以模拟测试数据和sql语句执行时间效率的测试工具,算了自己写一个吧,很简单的:
我们必须先得知道sql语句执行的开始时间和结束时间,比如我们要知道select * from article语句的执行效率:
![ContractedBlock.gif](/Images/OutliningIndicators/ContractedBlock.gif)
![ExpandedBlockStart.gif](/Images/OutliningIndicators/ExpandedBlockStart.gif)
declare @d datetime ---定义一个datetime的变量
set @d=getdate() ---获取查询语句开始前的时间
select * from article ---执行查询语句
select 语句的执行时间=datediff(ms,@d,getdate()) ---使用datediff()函数,计算精确到ms的执行时间
就这么简单。