0

我正在使用日期字段谓词(非集群)检索一些数据,并且我正在尝试使用 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/time 输出,读取是相同的,但是方法 #1 使用了 16ms 的 CPU,方法 #2 使用了 0ms,导致方法 #1 消耗了总成本的 61%,超过了总成本的 39%方法#2。

我真的不明白为什么 #method1 中使用 CPU,而方法 #2 上有这么多功能并且给了我 0ms。

有什么基本的解释吗?

4

1 回答 1

0

The first method retrieves the field from disk, taking `6 msec. The second method just fetches the data from memory. If you reversed the order, the other method would take longer.

于 2012-09-19T11:10:59.853 回答