2010-11-09 76 views
0

測試存儲過程性能的推薦方式是什麼?有一個SP需要大約20個布爾值,我想測試一些組合。還有另一個SP具有相同的參數,但具有不同的實現,並且想要一種比較方式。如果需要,我可以在.NET中手動執行此操作,但是想知道是否有更好的方法。謝謝!性能測試SQL Server

回答

0

嗯,有2^20種組合...

你可以做的要測試的設置表(BOOL1,BOOL2,BOOL3,...),然後添加列ALT1結果和alt2的結果(開始和結束時間,實際的數值結果,如果有一個bug,等)。

然後打開設置表上的光標(或SELECT TOP 1 WHERE result IS NULL上的循環)和EXEC每個處理與設置,記錄開始和結束時間和結果等任何其他。

所以在這一點上,我會把它全部保存在數據庫中,不需要.NET。如果數據集很大,並且您需要檢查端到端性能,那麼我可能會移出數據庫,但現在,移動較少的部分越多越好。

+0

只有2^20是超過一百萬。 :)每個查詢可能需要一秒或兩個(相對複雜)。假設每次只有10次迭代(爲了獲得更好的平均值),我們正在尋找1mil組合* 10次迭代/ 60秒/ 60分鐘/ 24小時= 115天。除此之外,我喜歡你的方法,並會試一試。 – 2010-11-09 17:33:38

+0

@Nelson - 右 - 我想不是所有這些組合都是現實的 - 也可以從現有的應用程序數據中導出實際可能的組合(SELECT DISTINCT CASE WHEN GENDER ='M'THEN 1 ELSE 0 END AS IsMale,CASE當WEARSBRA ='Y'那麼1 ELSE 0 END作爲WearsBra FROM DEMOGRAPHICS) - 可能有些情況不會在您的數據集中發生。 – 2010-11-09 18:49:46

1

您可以通過使用實際執行計劃執行兩個存儲過程來測量Server Management Studio中的性能。它會讓您分解每個語句中的性能/成本。

您還可以使用SQL Server Profiler收集性能指標。

我個人傾向於使用上述兩者的組合。

+0

我需要更高層次的東西,像凱德提到的那樣更自動化。一旦我確定問題查詢,我可以按照您的建議使用執行計劃和分析器。 – 2010-11-09 18:31:58

1

當您擁有大量參數時,請始終考慮配對測試。我更喜歡PICT工具。