Sql-Server

活動監視器中的參數

  • November 13, 2015

要查看“最近昂貴的查詢”,我使用 Activity Monitor。那裡的一些查詢帶有參數。

有沒有辦法知道這些值?

有沒有辦法知道這些值?

不,不是直接來自活動監視器。

您需要使用伺服器端跟踪或使用擴展事件來擷取這些詳細資訊。

有關如何創建跟踪以收集該數據的詳細資訊,請參閱有關此問題的詳細資訊和答案。

您可以右鍵點擊您感興趣的查詢並選擇Show execution plan在此處輸入圖像描述

打開執行計劃後,只需右鍵點擊空白區域並選擇Show Execution Plan XML...。一旦你有了它,你將在 XML 中看到一個部分<ParameterList>。在該節點中,它將向您顯示ParameterCompiledValue

   <ParameterList>
     <ColumnReference Column="@records" ParameterCompiledValue="(0)" />
     <ColumnReference Column="@traceid" ParameterCompiledValue="(2)" />
   </ParameterList>
 </QueryPlan>
</StmtSimple>

另一種方法是將執行計劃 XML 複製出來並將其粘貼到計劃資源管理器中並查看Parameters選項卡: 在此處輸入圖像描述

為書呆子編輯

如果您打開 Activity Monitor,然後進入 tempdb,您將找到 Activity Monitor 正在使用的所有臨時對象(表和所有)。對於昂貴的查詢,它正在使用 object dbo.#am_get_querystats。您可以打開該過程並查看他們用來提取它的確切查詢。很酷。我為活動部分做了這個,所以我可以得到類似的資訊,而不必一直打開活動監視器。

引用自:https://dba.stackexchange.com/questions/121044