私は次のクエリを持っています:
SELECT
COUNT(*)
FROM
FirstTable ft
INNER JOIN SecondTable st ON ft.STID = st.STID
ご想像のとおり、「STID」は「SecondTable」の主キーです...そして「FirstTable」にはその2番目のテーブルへのポインタがあります。これが私が持っているインデックスです:
FirstTable:列「STID」のNONCLUSTERED INDEX
SecondTable:CLUSTERED PRIMARY KEY
「STID」のINDEX
上記のクエリでは、サブツリーのコストは19.90で、2秒かかります。
そのクエリに対してデータベースチューニングアドバイザーを実行した後、彼らは私が2番目のテーブルに持っていたものとまったく同じインデックスを作成することを提案しました...しかしクラスター化されていません。だから私はこれらの結果でそれを試しました。
FirstTable:列「STID」のNONCLUSTERED INDEX
SecondTable:NONCLUSTERED
「STID」のINDEX
さて、上記のクエリは私に10.97のサブツリーコストを与え、 1秒未満かかります!
この100%は私の脳を粉砕します...このシナリオでNONCLUSTEREDインデックスがCLUSTEREDインデックスよりも高速に実行されるのはなぜですか?