J'essaie d'en savoir plus sur l'opérateur de plan de requête «vérification des références de clés étrangères» introduit dans SQL Server 2016. Il n'y a pas beaucoup d'informations à ce sujet. Microsoft l'a annoncé ici et j'ai blogué à ce sujet ici . Le nouvel opérateur peut être vu en supprimant une ligne d'une table parent avec 254 références de clés étrangères entrantes ou plus: lien dbfiddle .
Il y a trois nombres différents affichés dans les détails de l'opérateur:
- Le nombre de références de clés étrangères est le nombre de clés étrangères entrantes.
- Aucun index correspondant ne correspond au nombre de clés étrangères entrantes sans index approprié. Pour vérifier que la table mise à jour ou supprimée ne violera pas cette contrainte, il faudra analyser une table enfant.
- Je ne sais pas ce que représente le nombre d' index de correspondance partielle .
Qu'est-ce qu'un index d'appariement partiel dans ce contexte? Je n'ai pas réussi à faire fonctionner les éléments suivants:
- Index filtrés
- Mettre la colonne de clé étrangère en tant que
INCLUDE
colonne pour un index - Index avec la colonne de clé étrangère comme deuxième colonne de clé
- Index à colonne unique pour clés étrangères à plusieurs colonnes
- Création de plusieurs index de couverture pour activer un plan de "jointure d'index" pour une clé étrangère à plusieurs colonnes
Dan Guzman a souligné que les clés étrangères à plusieurs colonnes peuvent correspondre aux index même si les clés d'index sont dans un ordre différent de celui des colonnes de clés étrangères. Son code est là au cas où quelqu'un pourrait l'utiliser comme point de départ pour en savoir plus sur les index de correspondance partielle.