Sql-Server

有沒有辦法通過查詢文本找出正在執行的查詢的計劃句柄?

  • November 20, 2019

有沒有辦法通過查詢的文本來確定執行查詢的查詢計劃的計劃句柄?

也許在任何 DMV 中?

(我正在嘗試查找臨時查詢的查詢統計資訊。)

源自https://stackoverflow.com/questions/7359702/how-do-i-obtain-a-query-execution-plan

DECLARE @SearchForSql AS NVARCHAR(MAX) = 'SQL TEXT'

SELECT UseCounts, Cacheobjtype, Objtype, TEXT, query_plan
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
CROSS APPLY sys.dm_exec_query_plan(plan_handle)
WHERE Text LIKE CONCAT('%' ,@SearchForSql,'%')
   AND Text NOT LIKE '%-- Self Reference Marker --%'

注意:“不喜歡”是為了確保您找不到正在執行的語句,這本質上是自引用的。

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