回答編集履歴

2

追記しました。

2017/02/20 02:34

投稿

hihijiji
hihijiji

スコア4152

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

文章の補完

2017/02/20 02:33

投稿

hihijiji
hihijiji

スコア4152

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. クエリオプティマイザが解釈しやすいように極力シンプルに書く。