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 timescheint 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 statisticsliefert auch unterschiedliche Ergebnisse.
3 / DBCC DROPCLEANBUFFERS, DBCC FREEPROCCACHEsind gut, aber die gleiche Geschichte ...
4 / SET STATISTICS IO ONkö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 plankönnte auch eine Option sein. Ich erhalte einen estimated subtreecostWert 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?
