Sorgu performansını en iyi nasıl ölçerim?


19

2 saklı yordam var, burada ikinci saklı yordam ilki bir gelişme.

Tam olarak ne kadar bir gelişme olduğunu ölçmeye çalışıyorum.

1 / clock timeFarklı yürütme süreleri elde ettiğim için ölçüm bir seçenek gibi görünmüyor. Daha da kötüsü, bazen (nadiren, ama olur) ikinci saklı yordamın yürütme süresi ilk yordamın yürütme süresinden daha büyük (sanırım sunucu iş yükü nedeniyle sanırım).

2 / Include client statisticsayrıca farklı sonuçlar verir.

3 / DBCC DROPCLEANBUFFERS, DBCC FREEPROCCACHEiyi, ama aynı hikaye ...

4 / SET STATISTICS IO ONbir seçenek olabilir, ancak saklı yordamlarımda yer alan birçok masam olduğu için nasıl genel bir puan alabilirim?

5 / Include actual execution planbir seçenek de olabilir. Bir elde estimated subtreecostiçin ikinci bir ilk saklı prosedür için 0.3253 ve 0.3079 arasında. İkinci saklı yordamın% 6 daha hızlı olduğunu söyleyebilir miyim (= 0.3253 / 0.3079)?

6 / SQL Server Profiler "Okumalar" alanını kullanarak?

Peki, ikinci saklı yordamın, yürütme koşulları (sunucunun iş yükü, bu saklı yordamların yürütüldüğü sunucu vb.) Ne olursa olsun, ilk yordamdan% x daha hızlı olduğunu nasıl söyleyebilirim?

Mümkün değilse, ikinci saklı yordamın ilk saklı yordamdan daha iyi yürütme süresine sahip olduğunu nasıl kanıtlayabilirim?

Yanıtlar:


17

Bir önceki ve sonraki senaryo karşılaştırırken SQLQueryStress ücretsiz aracını kullanmayı seviyorum . SQLQueryStress ile, saklanan her yordamı istediğiniz kadar yürütebilir ve tüm yürütmeler için toplam ortalama istatistikleri elde edebilirsiniz.

Örneğin, saklanan her yordamı 100 kez yürütebilir ve ardından geliştirmelerinizi yedeklemek için istatistikleri kullanabilirsiniz. "100'den fazla yürütme, geliştirmelerim toplam 30 saniye kazandırıyor ve depolanan işlem yürütme başına 1500 daha az okuma yapıyor." Bence fikri anladın.

Depolanan işlemde parametreler varsa, iyileştirmelerinizin birçok farklı parametre kümesiyle çalışıp çalışmadığını iki kez kontrol etmek her zaman iyi bir fikirdir. SQLQueryStress, depolanan işlemin nasıl performans gösterebileceğine ilişkin daha iyi bir genel resim elde etmek için sorgunuzdaki parametreleri değiştirmenize izin veren bazı harika şeyler yapar.

SQLQueryStress belgeleri: http://www.datamanipulation.net/sqlquerystress/documentation/documentation.asp

SQLQueryStress



3

İki saklı yordamınız için birkaç gün içinde yürütme sürelerini topladığınızda, bu ana sayfayı kullanmanızı öneririz

http://www.evanmiller.org/ab-testing/t-test.html

gerçekten farklı olup olmadıklarını görmek için.

Saklı yordamların iyileştirilmesi söz konusu olduğunda,% 6 fark o kadar da ses çıkarmaz. Meslektaşımdan iki büyüklük derecesi beklemeye geldim ve sadece bir büyüklük derecesi yakalarsa hayal kırıklığına uğramış gibi davranıyorum ...

Çözümünün daha hızlı çalıştığını kanıtlamak için EvanMiller ana sayfasını kullanmak zorunda değildir.

Ayrıca yürütme planlarını karşılaştırmak için çok gelişmiş bir araç olduğu için http://www.sqlsentry.com/ adresinden SQLSentrys (edit :) Plan Explorer'ı da yükleyeceğim .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.