create proc dbo.PROC_SQL_COMP @sql1 varchar(8000),@sql2 varchar(8000),@t int
as
/*
调用:exec dbo.PROC_SQL_COMP @sql1='',@sql2='',@t=5
注:以下时间单位为ms(millisecond 毫秒)
比较两条件Sql语句执行时间,@sql1、@sql2为要比较的sql语句,@t为sql要运行的次数,结果为平均值
返回: AVG1 @sql1所用平均时间
AVG2 @sql2所用平均时间
DT1 @sql1所用总时间
DT2 @sql2所用总时间
TIMES 执行次数
*/
declare @dt1 datetime,
@dt2 datetime,
@dt3 datetime,
@dt4 datetime,
@ms1 bigint,
@ms2 bigint,
@i int
set @ms1 = 0
set @ms2 = 0
set @i = 0
--开始测试
while @i<@t
begin
set @dt1 = getdate()
exec(@sql1)
set @dt2 = getdate()
set @dt3 = getdate()
exec(@sql2)
set @dt4 = getdate()
set @ms1 = @ms1+datediff(ms,@dt1,@dt2)
set @ms2 = @ms2+datediff(ms,@dt3,@dt4)
set @i = @i+1
end
--结束
--测试结果
select AVG1=@ms1*1.00/@t,AVG2=@ms2*1.00/@t,TIMES=@t,DT1=@ms1,DT2=@ms2
比较两条SQL语句运行时间
最新推荐文章于 2019-04-09 09:05:26 发布