Ich versuche, mehr über den in SQL Server 2016 eingeführten Abfrageplanoperator "Fremdschlüsselreferenzprüfung" zu erfahren. Es gibt nicht viele Informationen dazu. Microsoft hat es hier angekündigt und ich habe hier darüber gebloggt . Der neue Operator wird angezeigt , indem eine Zeile aus einer übergeordneten Tabelle mit mindestens 254 eingehenden Fremdschlüsselreferenzen gelöscht wird : dbfiddle link .
In den Operator-Details werden drei verschiedene Zählungen angezeigt:
- Foreign Key References Count ist die Anzahl der eingehenden Fremdschlüssel.
- No matching Indexes Count ist die Anzahl der eingehenden Fremdschlüssel ohne geeigneten Index. Um sicherzustellen, dass die aktualisierte oder gelöschte Tabelle diese Einschränkung nicht verletzt, muss eine untergeordnete Tabelle überprüft werden.
- Ich weiß nicht, was Partial Matching Indexes Count darstellt.
Was ist in diesem Zusammenhang ein partieller Matching-Index? Folgendes konnte ich nicht zum Laufen bringen:
- Gefilterte Indizes
- Setzen der Fremdschlüsselspalte als
INCLUDE
Spalte für einen Index - Indizes mit der Fremdschlüsselspalte als zweiter Schlüsselspalte
- Einspaltige Indizes für Fremdschlüssel mit mehreren Spalten
- Erstellen mehrerer abdeckender Indizes, um einen "Index-Join" -Plan für einen Fremdschlüssel mit mehreren Spalten zu aktivieren
Dan Guzman wies darauf hin, dass Fremdschlüssel mit mehreren Spalten mit Indizes übereinstimmen können, selbst wenn sich die Indexschlüssel in einer anderen Reihenfolge als die Fremdschlüsselspalten befinden. Sein Code ist hier, falls jemand in der Lage ist, ihn als Ausgangspunkt zu verwenden, um mehr über teilweise übereinstimmende Indizes herauszufinden.