Bonjour,
La requete ci dessous s'exécute en moins de 1 seconde lorsque je l'exécute depuis le contexte "BaseClient" (=en sélectionnant la base de données BaseClient en haut à gauche de SSMS), alors qu'elle prend plusieurs minutes depuis master ou d'autres base. Savez-vous d'ou vient ce problème ?
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ARTICLE.ID_ARTICLE IDENT FROM BaseClient.dbo.ARTICLE inner JOIN BaseClient.dbo.COMMUNE ON COMMUNE.ID_COMMUNE=ARTICLE.ID_COMMUNE AND COMMUNE.ID_CLIENT = 3 AND COMMUNE.ANNEE = 2020 AND COMMUNE.ID_COMMUNE IN (13857, 13878, 13922, 13928, 13938, 13959, 13985, 14028, 14059, 14067, 14083, 14088, 14092, 14102, 14109, 14116, 14163, 14159) WHERE ( EXISTS ( SELECT 'a' FROM BaseClient.dbo.DEBITEUR WHERE DEBITEUR.NOM_CONCAT like '%dupon%' AND DEBITEUR.ID_ARTICLE = ARTICLE.ID_ARTICLE))
Pour info, voici quelques infos qui vous comprendront peut-être de voir d'où vient le problème :
- la base BaseClient a été construite en SQL 2008 et est en niveau de compatibilité SQL Server 2008 (100). Lorsque je passe la base depuis laquelle j'exécute la requete en niveau de compatibilité 2008 (100), la réponse est instantanée. (mais d'autres requêtes de l'application deviennent longues)
- Lorsque je met BaseClient et la base depuis laquelle je lance la requete en niveau de compatibilité SQL Server 2019, les temps sont de nouveau longs.
- Lorsque je modifie le filtre sur "AND COMMUNE.ID_COMMUNE" et que je met "AND COMMUNE.ID_COMMUNE IN (14092, 14116) ", la réponse est instantanée (le plan d'exécution change)
- J'ai passé la valeur de READ_COMMITTED_SNAPSHOT à ON sur BaseClient pour pouvoir exécuter la requete depuis un autre contexte
Avez-vous une idée ?
Merci par avance pour votre aide
Partager