回答編集履歴
2
追記しました。
answer
CHANGED
@@ -12,4 +12,7 @@
|
|
12
12
|
CONVERT (date, 日付型項目) = DATEADD (d, -1, CONVERT (date, 日付型項目))
|
13
13
|
です。
|
14
14
|
|
15
|
-
CONVERT (date, 日付型項目) を2度書くのは冗長ですが、それはクエリオプティマイザに期待します。
|
15
|
+
CONVERT (date, 日付型項目) を2度書くのは冗長ですが、それはクエリオプティマイザに期待します。
|
16
|
+
|
17
|
+
------
|
18
|
+
PS.ここまで書いて何ですが、tacsheavenさんに一票入れました。
|
1
文章の補完
answer
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
SQL Server の処理は、SQL文全体をクエリオプティマイザが解釈して実行計画を立て、コンパイルし実行します。
|
2
|
-
また、クエリオプティマイザはバージョンによって細かい挙動が変わってきます。
|
3
2
|
ですからWHERE句だけでの最適解はありません。
|
3
|
+
また、クエリオプティマイザは統計情報やバージョンによって細かい挙動が変わってきます。
|
4
|
+
よってSQL文全体の最適解もその場の実行環境でのみ有効です。
|
4
5
|
|
5
6
|
それを踏まえたうえでのアドバイスとしては、
|
6
7
|
1. クエリオプティマイザが解釈しやすいように極力シンプルに書く。
|