下面为您介绍的sql server计划缓存所要清除的是查询计划,假如您在sql server计划缓存方面遇到过类似的问题,不妨一看。
从sql server计划缓存中清除查询计划:
以下示例通过指定查询计划句柄从sql server计划缓存中清除查询计划。为了确保示例查询在计划缓存中,首先执行该查询。将查询 sys.dm_exec_cached_plans 和 sys.dm_exec_sql_text 动态管理视图以返回查询的计划句柄。然后,将结果集中的计划句柄值插入 DBCC FREEPROCACHE 语句,以从计划缓存中仅删除该计划。
USE AdventureWorks; GO SELECT * FROM Person.Address; GO SELECT plan_handle, st.text FROM sys.dm_exec_cached_plans CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st WHERE text LIKE N'SELECT * FROM Person.Address%'; GO
下面是结果集:
plan_handle text -------------------------------------------------- ----------------------------- 0x060006001ECA270EC0215D05000000000000000000000000 SELECT * FROM Person.Address; (1 row(s) affected) Remove the specific plan from the cache. DBCC FREEPROCCACHE (0x060006001ECA270EC0215D05000000000000000000000000);