在我的測試服務器上有一個正在運行的大型查詢(可以),但它是一個多行查詢。例如。在SSMS我告訴它運行類似:查看實際運行查詢的列表
begin transaction;
query;
query;
query;
query;
commit;
我想看看它在列表中查詢被執行。從sys.dm_exec_sql_text
中選擇text
將返回整個語句,而不是在列表中執行的特定命令。有沒有辦法查看正在處理的單個命令?
萬一它很重要(有時會),這是在SQL Azure實例上運行。
在我的測試服務器上有一個正在運行的大型查詢(可以),但它是一個多行查詢。例如。在SSMS我告訴它運行類似:查看實際運行查詢的列表
begin transaction;
query;
query;
query;
query;
commit;
我想看看它在列表中查詢被執行。從sys.dm_exec_sql_text
中選擇text
將返回整個語句,而不是在列表中執行的特定命令。有沒有辦法查看正在處理的單個命令?
萬一它很重要(有時會),這是在SQL Azure實例上運行。
使用DBCC INPUTBUFFER
DBCC INPUTBUFFER(your session id)
它會顯示在您的會話執行查詢
這給了我EventType「語言事件」,參數「0」,EventInfo「<整個查詢列表>」。 – Josh
@Josh - 是的檢查它..它顯示整個批次 –
在這裏,你可以找到我的完整集合O查詢有用的,以顯示交易運行時間等待事件和開放的交易使用計劃和sql文本: http://zaboilab.com/sql-server-toolbox/queries-to-see-rapidly-what-your-sql-server-is-doing-now
在Azure門戶中的性能視圖中,我可以單擊查詢ID(編號)並查看需要很長時間的查詢的單行這不一定是當前正在執行的那個。 – Josh
這是一個事務 - 在技術上,整個查詢正在運行,即使它被分解成多個單獨的部分。如果你想知道哪一個實際運行,記錄每個事務的開始(類似於SSIS記錄每個步驟的方式)會給你這些信息,但只有在事實之後 - 因爲日誌記錄將在事務中好。 –