大きなテーブルを用意してください T
sID Int PKpos Int PKwID Int PK
自己結合
T2.sID = T1.sIDT2.pos = T1.pos + 1T1.wID = 'alpha'T2.wID = 'beta'
にインデックスを追加し(wID, sID)、確かにそれが役に立ちました(たくさん)
実行計画では、出力がsID、posであることに気づきました
そのため、インデックスを に変更しました(wID, sID, pos)。
私が驚いたのは、クエリプランが同じままで、実行時間の改善がないことです
そのため、インデックスを次のように変更しました(wID)
同じクエリ プランと同じ実行時間
同じパフォーマンスを得るには、インデックスが小さい方がよいことは明らかです。
私の質問は、小さい方のインデックスが効果的である理由は何ですか?
その余分なデータがPKだからですか?