日期:2014-05-18  浏览次数:20815 次

两条语句完全相同,为什么执行的总时间不一样?

--总时间:[color=#FF0000] 0:80
declare @startime datetime  
declare @endtime datetime  

set @startime = Getdate()  
select * from Stocktb -- 执行语句  
set @endtime = Getdate()  
select convert(varchar,datepart(s,@endtime-@startime))+':'+convert(varchar,datepart(ms,@endtime-@startime)) as '总时间'


--总时间: 0:77或0:93
declare @startime datetime
declare @endtime datetime

set @startime = Getdate()
select * from Stocktb -- 执行语句
set @endtime = Getdate()
select convert(varchar,datepart(s,@endtime-@startime))+':'+convert(varchar,datepart(ms,@endtime-@startime)) as '总时间'[/color]

------解决方案--------------------
当时你开着迅雷来着。
------解决方案--------------------
这和代码有关系吗?你都把代码贴出来了,居然真的一样~
------解决方案--------------------
与很多因素可能有关: CPU,磁盘IO,内存,锁争,两次执行之间的数据变更,索引变更,统计信息变更..

确保两次测试的以上条件一致,结果基本就一样了.
------解决方案--------------------
这个很正常吧。就像你运行一个软件,有时可以很快打开,有时却要等上一小会时间。

sql执行的时间也要和你计算机当时的运行情况有些关系的
------解决方案--------------------
并不是每次都一样
多少有误差
------解决方案--------------------
誤差也不大,你多執行幾次,数据多了才可以更好的分析原因