SQL Server 2016で導入された「外部キー参照チェック」クエリプラン演算子について詳しく学習しようとしています。これに関する情報はあまり多くありません。マイクロソフトはここでそれを発表し、私はここでそれについてブログを書きました。new演算子は、254以上の着信外部キー参照を持つ親テーブルから行を削除することで確認できます:dbfiddle link。
オペレーターの詳細には、3つの異なるカウントが表示されます。
- 外部キー参照カウントは、着信外部キーの数です。
- 一致するインデックス数は、適切なインデックスのない着信外部キーの数です。更新または削除されたテーブルがその制約に違反しないことを確認するには、子テーブルのスキャンが必要です。
- 部分一致インデックスカウントが何を表すのかわかりません。
このコンテキストでの部分一致インデックスとは何ですか?次のいずれかを動作させることができませんでした。
- フィルター選択されたインデックス
- 外部キー列を
INCLUDE
インデックスの列として配置する - 2番目のキー列として外部キー列を持つインデックス
- 複数列の外部キーの単一列インデックス
- 複数の列の外部キーに対して「インデックス結合」プランを有効にするための複数のカバーインデックスの作成
Dan Guzmanは、インデックスキーの順序が外部キーの列と異なる場合でも、複数の列の外部キーがインデックスと一致する可能性があることを指摘しました。彼のコードは、誰かが部分一致インデックスについてさらに理解するための出発点としてそれを使用できる場合に備えてここにあります。