2011-12-15 43 views
1

在我的web應用程序中,我想做一個「響應測試」過程。可以從網頁啓動此過程,以查看數據庫服務器是否可到達並獲得一些結果的近似時間。如何製作「響應測試」存儲過程?

我不想讓存儲過程的執行精確的時間,我想有數據庫的「反應性」的想法..

所以我做的方法是這樣的:

 var start = DateTime.Now; 
     var test = new ObjectManager().ListObjects(SomeParameters);    
     var stop = DateTime.Now; 
     TimeSpan diff = stop - start; 
     label.Text = diff.TotalSeconds.ToString(); 

事實上,ObjectManager.listObject()是一種通過存儲過程從數據庫獲取數據的方法。 因此,計算所有過程的時間。 聯繫數據庫,啓動存儲過程,投射和檢索數據,.. 不僅用於存儲過程。這不是問題。

這工作正常,但我有兩個問題。

  1. 我需要從 DATAS量使存儲過程「獨立」。

  2. 我注意到在第一次執行時返回的時間是 ,例如1,62123秒。如果我刷新頁面的時間是 0,89897秒..半場!之後每次刷新約爲0.8 秒..

看來它是由SQL緩存造成的..

所以,我需要從數據的數量的「獨立」存儲過程數據庫和哪些不使用SQL緩存..任何想法做到這一點?

回答

1

您可以創建一個包含一些返回靜態值的SQL代碼的過程。像SELECT 1;或SELECT getdate()

這樣你就可以檢查到數據庫的連接而不會觸及任何數據。

第一次運行該過程時,SQL服務器需要爲其制定計劃,這會導致一些開銷。

當然,您可以隨時連續多次運行該程序(從代碼中)並計算平均值。