Cette requête fonctionne:Certaines valeurs pour la clause WHERE impliquant clé étrangère sont lents
SELECT [ID]
,[PROJECT_ID]
,[NAME]
,[LOCATION]
,[COMMENT]
FROM table1
WHERE PROJECT_ID = 4479
mais celui-ci ne compte pas:
SELECT [ID]
,[PROJECT_ID]
,[NAME]
,[LOCATION]
,[COMMENT]
FROM table1
WHERE PROJECT_ID = 3560
Il tourne et tourne indéfiniment. La seule différence est la valeur utilisée.
« PROJECT_ID » est une clé étrangère, et il y a un index défini avec comme la colonne unique (par habitude avec FKs).
En parallèle: il y a une forte fragmentation sur les indices FK sur ce tableau.
Sont-elles probablement liées, à savoir, si je Reconstruire les index dois-je attendre le problème sera résolu?
Je ne peux pas les reconstruire maintenant car il est un système de production et je crois comprendre que je ne peux reconstruire les index quand les verrous peuvent être obtenus ... tels que tard ce soir.
Toute orientation sur la façon de « forcer une reconstruction de tous les index de toutes les tables dans une base de données même si elle déconnecte les utilisateurs » est également apprécié.
Merci, - Jesse
J'ai confirmé que la reconstruction des index a effectivement résolu mon problème, une fois que j'ai compris comment supprimer les connexions/sessions bloquantes afin de faire la reconstruction en cliquant-droit sur "Index" dans SSMS. Merci. –
Vous pouvez au moins exécuter la réorganisation de l'index en ligne pendant la journée afin que la nuit, il y ait moins de travail à faire pendant une reconstruction. – ErikE