2017-01-06 68 views
4

在我的測試服務器上有一個正在運行的大型查詢(可以),但它是一個多行查詢。例如。在SSMS我告訴它運行類似:查看實際運行查詢的列表

begin transaction; 
query; 
query; 
query; 
query; 
commit; 

我想看看它在列表中查詢被執行。從sys.dm_exec_sql_text中選擇text將返回整個語句,而不是在列表中執行的特定命令。有沒有辦法查看正在處理的單個命令?

萬一它很重要(有時會),這是在SQL Azure實例上運行。

+0

在Azure門戶中的性能視圖中,我可以單擊查詢ID(編號)並查看需要很長時間的查詢的單行這不一定是當前正在執行的那個。 – Josh

+0

這是一個事務 - 在技術上,整個查詢正在運行,即使它被分解成多個單獨的部分。如果你想知道哪一個實際運行,記錄每個事務的開始(類似於SSIS記錄每個步驟的方式)會給你這些信息,但只有在事實之後 - 因爲日誌記錄將在事務中好。 –

回答

3

使用DBCC INPUTBUFFER

DBCC INPUTBUFFER(your session id) 

它會顯示在您的會話執行查詢

+0

這給了我EventType「語言事件」,參數「0」,EventInfo「<整個查詢列表>」。 – Josh

+0

@Josh - 是的檢查它..它顯示整個批次 –