如何查看曾经执行的SQL的执行计划

这篇文章讲述了如何从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%';


你可能感兴趣的:(如何查看曾经执行的SQL的执行计划)