日付フィールド述語 (クラスター化されていない) を使用してデータを取得していますが、目標を達成するために 2 つの代替手段を使用しようとしています。フィールドは adatetime
であり、私が使用しているステートメントの 1 つで、フィールドに格納されている値を文字通り使用しています。
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 は 16 ミリ秒の CPU を使用し、メソッド #2 は 0 ミリ秒を使用したため、メソッド #1 は総コストの 39% を超えて 61% を消費しました。方法#2。
メソッド #2 に非常に多くの機能があり、0ms が得られるのに、#method1 で CPU が使用されている理由がよくわかりません。
それについての基本的な説明はありますか?