1

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

+0

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. –

+0

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

Répondre

2

ces requêtes sont encapsulées dans une procédure stockée? Si c'est le cas, vous risquez d'être touché par un reniflage de paramètre.

Vous pouvez également vérifier vos statistiques; Il est possible que, s'ils sont très périmés, vous puissiez obtenir un très mauvais plan d'exécution avec certains paramètres et pas avec d'autres.

+0

Et si la sélectivité est assez volatile (ou si la table est si grande que la mise à jour manuelle des statistiques est comme drainer l'océan avec une tasse), vous pouvez ajouter OPTION (RECOMPILE) à la requête, pour contrecarrer le reniflage des paramètres . –

+0

Merci. Ce n'était pas lié au SP, mais c'était certainement au moins Stats, sinon Index (pas sûr, parce que les deux sont faits sur une reconstruction est ma compréhension.) –

Questions connexes