我正在使用日期字段谓词(非群集)检索一些数据,我正在尝试使用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的原因。
有什么基本的解释吗?
答案 0 :(得分:0)
第一种方法从磁盘中检索字段,耗时6毫秒。第二种方法只是从内存中获取数据。如果你颠倒了订单,另一种方法需要更长的时间。