CPU使用日期谓词SQL Server

时间:2012-09-19 11:07:39

标签: sql-server

我正在使用日期字段谓词(非群集)检索一些数据,我正在尝试使用2个替代方案来实现我的目标。 该字段是datetime,在其中一个语句中,我使用字面上存储在字段中的值

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使用16ms的CPU,方法#2使用0ms导致方法#1消耗总成本的61%超过39方法#2的百分比。

我不明白为什么在方法#2上有如此多的函数并且给我0ms时,#method1中使用了CPU的原因。

有什么基本的解释吗?

1 个答案:

答案 0 :(得分:0)

第一种方法从磁盘中检索字段,耗时6毫秒。第二种方法只是从内存中获取数据。如果你颠倒了订单,另一种方法需要更长的时间。