2012-09-19 42 views
0

我正在使用日期字段谓词(非群集)检索一些数据,并试图使用2个替代方案来实现我的目标。 字段为datetime,并在语句中的一个我使用字面存储在现场CPU使用日期谓词SQL Server

WHERE dataload ='2012-07-16 10:13:01.307' 

在我使用这个谓词其他语句中的值。

WHERE dataload >= DATEADD(DAY,0,datediff(day,0,@Dataload)) 
    and dataload <= dateadd(ms,-3,DATEADD(DAY,1,datediff(day,0,@Dataload))) 

综观统计IO /时间输出时,读出是相同的,但该方法#1中使用的CPU 16毫秒,并且所述方法#2中使用使该方法#1 0毫秒消耗总量的61%成本超过方法#2的39%。

为什么CPU在#方法1在使用时的方法#2上有如此多的功能,给我0毫秒我真的不理解。

有什么基本的解释呢?

回答

0

第一种方法从磁盘检索字段,采用'6毫秒。第二种方法只是从内存中获取数据。如果您颠倒了顺序,另一种方法会花费更长的时间。

+0

这是不对的!我颠倒了陈述,并得到了相同的结果。 ... – MrKudz

+0

您如何测量? – stark