最近、Ola Hallengreenスクリプトを使用して、99%断片化されたインデックスを再構築しています。再構築後、物理的な読み取りが大幅に減少していることに気付きました。これは再構築されたインデックスと関係がありますか?
インデックスを再構築した直後は、そのページがメモリにキャッシュされる可能性が高くなります。
このシナリオを考えてみましょう:
これは、物理的な読み取りを使用してパフォーマンスチューニング作業の成功を測定したくない理由の1つです。代わりに論理読み取りを使用することから始めます。 (つまり、ステップ#3を完全に省略しても、物理的な読み取りが少なくなる可能性がありますが、物理的な読み取りを減らすためにすべてのクエリを2回実行する必要があるという意味ではありません。)
基本的な質問は、「インデックスの再構築がインデックスに対して何を行うか」ということです。簡単な答えは、インデックスを順番に配置することです。より複雑な答えはあなたの質問に対する答えであり、2つの部分に分かれています。
また、@ Laughing Vergilの回答に加えて、I/Oワークロードが削減された理由をもう1つ追加します。
インデックスが再構築された後、それらのインデックスの統計も再構築されます。つまり、より正確な統計が構築されます。そのため、以前(つまり、インデックスの再構築前)にテーブルスキャンを使用して処理を行っていたクエリが、インデックスシークを使用してその結果、I/Oワークロードが大幅に削減されました。