2014-10-29 73 views
0

我的應用程序和SQL Server(2008 R2)存在實際問題。如何確定哪些存儲過程正在執行(MSSQL 2008 R2)

我有一個存儲過程由於錯誤配置的SQLCMD變量而失敗,但對存儲過程的調用位於我沒有源代碼的程序集中。

有沒有辦法看到哪個存儲過程正在執行?或者有沒有一種方法可以通過SQL查詢來確定哪些存儲過程已執行以及何時執行?

我真的被卡住了。請幫忙!

中號

+0

在SQL事件探查器中啓動一個跟蹤,它將顯示正在執行的所有查詢 – radar 2014-10-29 16:19:47

+0

事件探查器有很高的開銷,你也可以用服務器端跟蹤來做到這一點,但涉及更多。 – 2014-10-29 17:01:42

回答

0

你可以嘗試在你的數據庫運行以下命令:

select OBJECT_NAME([object_id], database_id), last_execution_time, execution_count 
from  sys.dm_exec_procedure_stats 
order by last_execution_time desc 

文檔:http://msdn.microsoft.com/en-us/library/cc280701.aspx

這使你在執行的時候什麼上次運行多少次的快照它自上次編譯以來一直執行。不幸的是,這個表並不幸地讓存儲過程獲得運行的日誌,就在它們最後運行時以及其他有用的信息時。

有一個更復雜的方法,你可以看看SQL Server Audit,SQL Server 2008的一個新功能。我沒有太多的經驗,但是如果你被超級卡住了,這應該會給你一個起點。

相關問題