Sql-Server
活動監視器中的參數
要查看“最近昂貴的查詢”,我使用 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
。您可以打開該過程並查看他們用來提取它的確切查詢。很酷。我為活動部分做了這個,所以我可以得到類似的資訊,而不必一直打開活動監視器。