Bonjour,

J'ai une situation très étrange avec une requête SQL qui contient un ORDER BY
Elle est exécutée depuis une application qui se connecte initialement avec un login (RO) qui n'a que les droits de lecture.
Après connexion à la base de données, j'effectue un sp_setapprole via le code source de l'application afin de changer les permissions pour que l'application ait les accès en écriture dans la DB

J'ai détecté une lenteur dans un de mes écrans. Via le profiler, j'ai isolé la requête en question qui met 26 secondes lorsqu'elle est exécutée depuis l'application.
Je l'ai exécutée via SSMS connecté avec un login admin et elle s'exécute en moins d'une seconde.
Je l'ai exécutée ensuite via SSMS avec le login avec lequel on se connecte initialement à la DB depuis l'application (RO) et elle s'exécute également en moins d'une seconde
Je me suis alors mis exactement dans le même contexte, à savoir:
1. Connexion à SSMS avec le login RO
2. Exécution de sp_setapprole 'Nom_du_rôle', 'Mot_de_Passe_Du_Rôle'
3. Exécution de la requête
Et là, elle s'exécute en 26 secondes également dans SSMS!

Et après analyse, j'ai découvert qu'en bougeant le "ORDER BY", la requête s'exécutait en moins d'une seconde là où elle s'exécute en 26 secondes

Avez-vous une idée?

Merci beaucoup d'avance pour votre aide