Comment vérifier l'optimization des performances de SQL Server pour les procédures stockées

Je crée une procédure stockée pour une application qui va générer une logique métier dans sql-server . Comment puis-je vérifier la performance des procédures stockées comme la vitesse, la précision, etc. Toutes les idées ou la direction seront très appréciées

Personnellement, quand je teste la vitesse d'un sproc, j'utilise quelque chose de similaire à ce qui suit:

DBCC FREEPROCCACHE; DBCC DROPCLEANBUFFERS; GO SET STATISTICS TIME ON; SET STATISTICS IO ON; GO EXEC <my sproc> [args] 

DBCC FREEPROCCACHE

Utilisez DBCC FREEPROCCACHE pour effacer le cache de procédure. La libération du cache de procédure entraînerait, par exemple, la recompilation d'une instruction SQL ad hoc plutôt que sa réutilisation dans le cache. Si vous observez via SQL Profiler, vous pouvez observer les events Cache Remove se produire lorsque DBCC FREEPROCCACHE fonctionne. DBCC FREEPROCCACHE invalidera tous les plans de procédure stockés que l'optimiseur a mis en cache dans la memory et forcera SQL Server à comstackr de nouveaux plans la prochaine fois que ces procédures seront exécutées.

DBCC DROPCLEANBUFFERS

Utilisez DBCC DROPCLEANBUFFERS pour tester les requêtes avec un cache de tampon froid sans arrêter et redémarrer le server. DBCC DROPCLEANBUFFERS sert à vider le cache de données. Toutes datatables chargées dans le cache tampon en raison de l'exécution préalable d'une requête sont supprimées.

Ci-dessus éhontée volé à: ce blog

SET STATISTICS TIME ON

Affiche le nombre de millisecondes requirejs pour parsingr, comstackr et exécuter chaque instruction.

Lectures complémentaires (MSDN)

SET STATISTICS IO ON

Oblige SQL Server à afficher des informations sur la quantité d'activité disque générée par les instructions Transact-SQL.

Lectures complémentaires (MSDN)

En ce qui concerne l'exactitude de la requête, c'est quelque chose que vous, en tant que développeur, devez regarder. Je ne pense pas qu'il existe un moyen automatisé de tester l'exactitude.

J'espère que cela vous aidera à démarrer.

Note: Je fais cela dans SSMS