1

ビュー内のテーブルに追加されるいくつかの非クラスタ化インデックスをテストしていました(7つの内部結合があります)。Tunning Advisor (SQL Server 2008) を実行すると、テーブル (a) に非クラスター化インデックスを作成するスクリプトが表示され、クエリの最適化に役立ちます。

インデックスを作成する前に、クエリを実行して IO および TIME 統計を取得しました。

a) **Scan count 2, logical reads 420**
b) Scan count 2, logical reads 6
c) **Scan count 2, logical reads 40**
d) Scan count 3, logical reads 12
e) Scan count 4, logical reads 28
f) Scan count 4, logical reads 16
g) Scan count 2, logical reads 4
h) Scan count 1, logical reads 3
   CPU time = 172 ms,  elapsed time = 397 ms.

nonClustered インデックスを作成した後、次のようになりました。

a) **Scan count 16, logical reads 710**
b) Scan count 2, logical reads 6
c) **Scan count 2, logical reads 8**
d) Scan count 3, logical reads 12
e) Scan count 4, logical reads 28
f) Scan count 4, logical reads 16
g) Scan count 2, logical reads 4
h) Scan count 1, logical reads 3
   CPU time = 187 ms,  elapsed time = 335 ms.

ACの行を確認してください。Aでは 300 ページ多く、 Bでは 32 ページ少ないだけです。では、なぜこのクエリの方が速いのでしょうか? クエリが読み取るページが多いほど、パフォーマンスが低下するといつも思っていました

4

1 に答える 1