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