Je suis nouveau à indexer et à suivre les bases de l'indexation. Je peux trouver un index clustered par défaut pour la principale contrainte de clé dans la partie index de la table correspondante, mais après avoir créé une contrainte de clé étrangère, je ne trouve aucun.
Maintenant, j'ai une exigence dans laquelle l'indexation devrait être mise en œuvre pour améliorer les performances. J'ai lu sur indexation de la clé étrangère afin d'améliorer les performances d'un Résultat de joint.
Dois-je ajouter la colonne de la clé étrangère à un index supplémentaire non en cluster ou la clé étrangère a une indexation par défaut?
Comment puis-je implémenter efficacement l'indexation si ma SQL Table Structure est la suivante et j'ai une Rejoindre la requête avec où la clause Utilisation t1_col
table1 table2
------ ------
t1_col1(pk) t2_col1(pk)
t1_col2 t2_col2
t1_col3 t2_col3
t1_col4 t2_col4
t2_col1(FK)
Une clé étrangère n'a pas d'index par défaut. Vous devez en créer un.
Dans ce cas, je leur suggérerais l'un ou l'autre. Cela dépend de la sélectivité relative des 2 colonnes
CREATE INDEX IX_table2fk ON
table1 (t2_col1, t1_col3)
INCLUDE (any columns needed for the query)
OR
CREATE INDEX IX_table2fk ON
table1 (t1_col3, t2_col1)
INCLUDE (any columns needed for the query)
L'inclusion fabriquera le Index couvrant pour éviter les recherches de clé/signet