簡體   English   中英

窺探當前正在運行的存儲過程

[英]get spid of currently running stored procedure

因此,我有一個proc本質上是一個動態查詢生成器...根據用戶設置查詢的復雜性,在查詢可能要花20多分鍾才能執行的情況下,我可能會結局。

因此,為了避免出現這些建議,我已經在做一些事情來作為這個問題的開頭:

  1. 這是一個動態查詢生成器,因此用戶最終可以通過UI創建一個非常復雜的自定義查詢。 我添加索引,等等,當我在保存的日志中看到時間尖峰時。
  2. 我正在更新利用此表的統計信息。
  3. 我已盡可能優化proc和關聯的表...

目前,我在網站上設置的超時值非常高(8分鍾)以適應此情況,但是我想做的是將對此進程的長時間運行調用轉入隊列以在應用程序外部運行。

我想知道的是,當調用存儲過程或更具體地說是動態sql時,是否有辦法獲取為查詢創建的spid的句柄? 就像我想像的那樣,在sql Server Management Studio中,停止按鈕本質上是利用與此類似的功能來殺死當前正在運行的查詢...我將能夠以較低的超時中止查詢,然后使其獨立運行(甚至可能在其他服務器上),只需通過電子郵件將結果或其他內容發送給我們,我們將不勝感激!

您可以使用@@ spid獲取當前的運行spid

這是msdn鏈接http://msdn.microsoft.com/en-us/library/ms189535.aspx

暫無
暫無

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

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