0

基本的な質問ですが...

フィルターを追加すると、テーブル スキャンのパフォーマンスが向上しますか?

たとえば、多くの NULL 値を持つ列を含むテーブルがあり、35 を超える値のみを探しているとします。

実行する方が速いですWHERE something IS NOT NULL AND something > 35か、それともそのままにしておくべきですかWHERE something > 35

MS SQL Server 2005 を実行しています。

4

1 に答える 1

3

2 つの製剤は、機能的に同等です。

全テーブル スキャンを実行する場合、オーバーヘッドはページ キャッシュへのページのロードにあります。テストの実行は、コンピューティング作業の最小限の部分です。NULL が 2 回チェックされると、パフォーマンスの違いは計り知れない可能性があります。

次のいずれかを選択します。

 where something > 35

where something > 35 and something is not null

クエリの表現力の問題です。where私は明示的であることを好み、句に NULL チェックを入れます。ただし、どちらも同等です。

于 2013-03-28T13:49:20.717 に答える