Ich habe 2 gespeicherte Prozeduren, wobei die zweite gespeicherte Prozedur eine Verbesserung der ersten ist.
Ich versuche daran zu messen, um wie viel das eine Verbesserung ist.
1 / Messen clock time
scheint keine Option zu sein, da ich unterschiedliche Ausführungszeiten bekomme. Schlimmer noch, manchmal (selten, aber es kommt vor) ist die Ausführungszeit der zweiten gespeicherten Prozedur größer als die Ausführungszeit der ersten Prozedur (ich denke, aufgrund der Serverauslastung in diesem Moment).
2 / Include client statistics
liefert auch unterschiedliche Ergebnisse.
3 / DBCC DROPCLEANBUFFERS
, DBCC FREEPROCCACHE
sind gut, aber die gleiche Geschichte ...
4 / SET STATISTICS IO ON
könnte eine Option sein, aber wie kann ich eine Gesamtbewertung erhalten, da ich viele Tabellen in meine gespeicherten Prozeduren involviert habe?
5 / Include actual execution plan
könnte auch eine Option sein. Ich erhalte einen estimated subtreecost
Wert von 0,3253 für die erste gespeicherte Prozedur und 0,3079 für die zweite. Kann ich sagen, dass die zweite gespeicherte Prozedur 6% schneller ist (= 0.3253 / 0.3079)?
6 / Verwenden Sie das Feld "Reads" von SQL Server Profiler?
Wie kann ich also sagen, dass die zweite gespeicherte Prozedur x% schneller ist als die erste Prozedur, unabhängig von den Ausführungsbedingungen (der Arbeitslast des Servers, dem Server, auf dem diese gespeicherten Prozeduren ausgeführt werden usw.)?
Wie kann ich nachweisen, dass die zweite gespeicherte Prozedur eine bessere Ausführungszeit als die erste gespeicherte Prozedur hat, wenn dies nicht möglich ist?
quelle
Wenn Sie Ausführungszeiten für Ihre beiden gespeicherten Prozeduren über ein paar Tage gesammelt haben, empfehle ich Ihnen, diese Homepage zu verwenden
http://www.evanmiller.org/ab-testing/t-test.html
um zu sehen, ob sie tatsächlich unterschiedlich sind.
6% Unterschied klingt weniger, wenn es um Verbesserungen von gespeicherten Prozeduren geht. Ich erwarte von meinem Kollegen zwei Größenordnungen und gebe vor, enttäuscht zu sein, wenn er nur eine Größenordnung erreicht ...
Er muss die EvanMiller-Homepage nicht verwenden, um zu beweisen, dass seine Lösung schneller funktioniert.
Ich würde auch SQLSentrys (edit :) Plan Explorer von http://www.sqlsentry.com/ installieren, da dies ein viel verbessertes Tool zum Vergleichen von Ausführungsplänen ist.
quelle