Microsoft SQL Server Profilerを時々実行すると、作成する新しいインデックスと統計の束が提示されます( "... 97%の推定改善...")。
私の理解では、追加されたすべてのインデックスはSQL SELECT
クエリを高速化できますが、インデックスを調整する必要があるため、UPDATE
またはINSERT
クエリも低速になります。
「インデックスが多すぎる」/統計はいつあるのでしょうか。
多分これについて明確な答えはありませんが、経験則はあります。
負荷プロファイルは、この質問に答える上で最も重要な要素です。
ロードが読み取り集中型である場合、最も重いまたは最も頻繁なクエリをインデックスで満たす必要があります。
負荷が書き込み集中型の場合は、慎重にインデックスを作成してください。たとえば、UPDATEのニーズを満たすシークと、1つまたは2つの最も高価なSELECTを満足させるインデックス。
負荷がOLAP 1の場合、とにかくターゲットテーブルをスキャンするため、インデックスは控えめにしてください。
インデックスが多すぎるとどうしてわかりますか?
維持されているが使用されていない(またはほとんど使用されていない)インデックスがある場合、インデックスが多すぎます。ユーザーのパフォーマンスを向上させるためにすべてのインデックスが使用されている場合は、あまり多くありません。