Je viens de rencontrer dans ce même problème, et après avoir essayé de comprendre comment ou pourquoi, y compris le plan d'exécution accélérait les choses, je suis venu à la conclusion que SSMS misreports simplement le temps d'exécution total. La réponse à votre question est donc qu'elle ne fonctionne pas vraiment plus vite, malheureusement, et que oui, vous devez effectuer des minutages sans que le plan d'exécution soit inclus. Lors de la première exécution de tests dont les temps étaient de quelques centaines de millisecondes, il était difficile de diagnostiquer, mais une fois que j'ai pu reproduire le problème avec une requête plus lente, il est devenu plus facile de voir. Dans la capture d'écran ci-dessous sont cinq exécutions d'une procédure stockée qui renvoie plusieurs ensembles de résultats. Les trois premiers passages étaient sans retourner le plan d'exécution, et les quatrième et cinquième étaient avec. Malgré l'apparition de réponses beaucoup plus rapides (~ 200ms au lieu de ~ 5s), la requête prenait encore ~ 5s à compléter. Je suppose qu'il y a un bug dans les statistiques du client quelque part qui chronomètre le plan d'exécution renvoyé et pas la requête complète dans certaines circonstances.
Quand je lance DBCC DROPFREEBUFFERS je reçois une erreur - instruction DBCC incorrect. Lorsque je google, la commande DBCC DROPCLEANBUFFERS apparaît. –
Eh bien, je l'ai testé avec les commandes DBCC FREEPROCCACHE et DBCC DROPCLEANBUFFERS avant l'instruction, et il est encore plus rapide avec le plan d'exécution de l'affichage. Je me demande si cela a quelque chose à voir avec les statistiques, et si oui, comment puis-je obtenir l'ensemble de résultats plus rapide lorsque j'exécute la requête en production. –
Je vais marquer votre réponse comme correcte. Bien que je ne comprenne toujours pas pourquoi cela arrive, c'est probablement un bug dans la façon dont les statistiques client sont comptées, peut-être qu'elles n'incluent pas le temps de création du plan d'exécution quand le plan d'exécution est activé ou quelque chose comme ça . Votre conseil sur l'effacement du cache m'aide à obtenir une bonne base de référence sur le temps d'exécution total entre les trys, merci pour cela. –