2010-02-22 7 views
3

J'ai créé deux nouveaux index sur les tables qui sont utilisées sur un sp. Les nouveaux résultats montrent que de la part des jointures problématiques, les analyses sont converties en recherche. Je pense que chercher est meilleur plutôt que de scanner les opérations. D'un autre côté, le temps prend plus ou moins la même durée que s'il était sans nouveaux index.Comparaison des performances des procédures stockées ex et nouvelle version

Donc, clairement, comment puis-je être satisfait avant de mettre ma nouvelle version en production. Par exemple, la modification des paramètres de sp peut m'aider à voir si la nouvelle version est plus rapide que l'ancienne version ou quoi d'autre?

Cordialement bk

+0

Je suppose que vous utilisez SQL Server? – AdaTheDev

+0

SQL Server 2005 – theklc

Répondre

5

Quelques choses à faire:
1) assurer que vous comparez les performances assez en effaçant les données et le cache plan d'exécution après chaque essai. Vous pouvez effacer ces vers le bas à l'aide (RECOMMANDÉ seulement faire cela sur votre dev/environnement de test):

CHECKPOINT -- force dirty pages in the buffer to be written to disk 
DBCC DROPCLEANBUFFERS -- clear the data cache 
DBCC FREEPROCCACHE -- clear the execution plan cache 

2) Exécuter Profiler SQL pour enregistrer la lecture/écriture/CPU/Durée pour chaque situation (avec/sans les indices). Cela vous donnera une gamme de métriques à comparer sur (c'est-à-dire par opposition à juste le temps indiqué dans SSMS). Pour exécuter une trace SQL Profiler, dans Management Studio, accédez à Outils -> SQL Server Profiler. Lorsque vous y êtes invité, spécifiez le serveur db sur lequel exécuter la trace. Une boîte de dialogue "Trace Properties" apparaîtra - vous devriez simplement pouvoir cliquer sur "Run" pour lancer une trace par défaut. Ensuite, exécutez simplement votre procédure stockée et voyez-la apparaître dans SQL Profiler - elle montrera la durée, le nombre de lectures etc.

3) Testez avec des volumes de données beaucoup plus importants que ce que vous avez déjà. Si vous testez avec de petites quantités de données, alors la différence est souvent difficile à voir sur la durée seule.

Je récemment blogged here sur la façon de tester équitablement les performances des différentes variantes d'une requête, ce qui va un peu plus en détail sur la façon dont je le fais.

+0

Merci Ada, Pourriez-vous s'il vous plaît étendre le deuxième élément ci-dessus. Cordialement bk – theklc

+0

@blgnklc - fait :) – AdaTheDev

+0

Je fais les éléments ci-dessus, mais article n'a pas fonctionné comme vous l'avez mentionné sur votre blog comme comparer 2 garçons de papier pour voir que l'on peut compléter une donnée plus rapide autour de la . Les méthodes claires semblent ne pas fonctionner. Une fois que j'ai exécuté la version SP ancienne, prend beaucoup de temps pour la première fois alors, j'utilise les méthodes claires pour exécuter SP nouvelle version. D'autre part, lorsque j'efface à nouveau et exécute l'ancienne version SP pour la deuxième fois, cela prend si peu de temps. Première fois, ancienne version SP: 4:24 minutes Deuxième fois, ancienne version SP: 0:18 minutes Ai-je raté quelque chose? – theklc

Questions connexes