簡體   English   中英

計算C#中執行之前存儲過程的執行時間

[英]calculate execution time of before execution stored procedure in c#

我正在使用C#.net應用程序

我正在從我的C#代碼中執行存儲過程,大約需要2分鍾才能完成其執行。 我在后端使用SQL Server 2008 R2。 所以我想顯示一個進度條,該進度條顯示存儲過程的執行進度。 為此,我需要計算存儲過程的執行時間。 因此,有什么方法可以計算執行時間+該應用程序在客戶端數量上運行,因此存儲過程的執行時間因客戶端而異。 因此,請給我建議或尋找如何實現此目標的方法?

感謝您的寶貴意見

好問題 您可以考慮以下一些選項。

答:這是查詢計划的很好的解釋。 如何獲得查詢執行計划?

B.在您的存儲過程中添加反饋(即報告回表)。 我假設有許多任務。 嘗試在存儲過程中的每個任務之間進行報告,以提供更精細的度量。 如果在沒有表反饋的情況下比較整潔,您甚至可以將其分解為不同的存儲過程。

C.一旦執行了該程序,您可能會擁有最佳的估計時間。

D.優化您的存儲過程。 我可以想象,如果運行得快,對所有人都有利。 這意味着您的估計將減少! 注意事項:

希望有一些幫助。

從您提供的信息中,我只能猜測,但仍然只能看到兩種方法:

  • 如果過程的執行長度取決於傳遞給它的參數(很自然的猜測:字節數組的長度),則可以測量某些級別參數的平均執行長度,可以將其硬編碼(或者更好的是,可以從中解析)在啟動時保存文件),然后用於預期運行時估算=>,隨着時間的流逝,用戶會看到需要多長時間才能完成。
  • 如果它不是基於傳遞的參數,而是基於數據庫服務器負載,則可以調用服務器的cpu /硬盤驅動器負載水平,甚至可以根據最近時間的過程調用量來估算這些負載水平=>然后,這又可以導致您的執行時間估算。

我無法弄清任何更具體的內容,除非您例如共享過程調用及其生成的sql,理想情況下還要包含表和小數位數的詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM