这篇文章讲述了如何从execution plan cache中取出里面的执行计划。注意如果memory不够用,旧的执行计划就会被清除出缓存,这样就无法查询到了。
http://www.sqlservergeeks.com/blogs/AmitBansal/sql-server-bi/124/extracting-the-execution-plan-from-sql-server-plan-cache
如果缓存的执行计划过多,则会导致查询较慢,可以加上dbid。
SELECT qplan.query_plan AS [Query Plan],qtext.text
FROM sys.dm_exec_query_stats AS qstats
CROSS APPLY sys.dm_exec_query_plan(qstats.plan_handle) AS qplan
cross apply sys.dm_exec_sql_text(qstats.plan_handle) as qtext
where qtext.dbid = 23
and qplan.query_plan is not null
and text like '%SQL%';