2011-01-30 86 views
1

如何爲查詢捕獲SQL執行計劃。有人告訴我,我可以取回他們通過系統表SQL服務器執行計劃

+0

對於所有查詢?調整一個查詢?有幾種方法,它取決於你將如何使用計劃數據 – gbn 2011-01-30 11:33:51

回答

1

正如gbn所指出的,您可以通過多種不同的方式來查看查詢的執行計劃。鑑於您的問題提及了系統表的使用,我假設您正在討論動態管理視圖(DMV),因此您也只對目前在計劃緩存中的查詢計劃感興趣。

如果你有興趣在確定從計劃緩存特定查詢的查詢計劃,那麼你可以使用形式類似下面的查詢:

SELECT deqs.plan_handle , 
     deqs.sql_handle , 
     execText.text 
FROM sys.dm_exec_query_stats deqs 
     CROSS APPLY sys.dm_exec_sql_text(deqs.plan_handle) AS execText 
WHERE execText.text LIKE '%QueryText%' 

對於進一步的閱讀,看看文章DMVs for Query Plan Metadata


如果說你更感興趣的是審覈您的表演最爲低下的查詢,當前在計劃緩存中引用的表現,你可以使用優秀的免費提供 的SQL Server Performance Dashboard Reports.


當然還有其他方法來查看查詢計劃,但不知道它到底是什麼,你正在努力實現的,這些可能不適合您的需求。