从sql server计划缓存中清除查询计划

下面为您介绍的sql server计划缓存所要清除的是查询计划,如果您在sql server计划缓存方面遇到过类似的问题,不妨一看。

从sql server计划缓存中清除查询计划:

以下示例通过指定查询计划句柄从sql server计划缓存中清除查询计划。为了确保示例查询在计划缓存中,首先执行该查询。将查询 sys.dm_exec_cached_plans 和 sys.dm_exec_sql_text 动态管理视图以返回查询的计划句柄。然后,将结果集中的计划句柄值插入 DBCC FREEPROCACHE 语句,以从计划缓存中仅删除该计划。

 
 
 
  1. USE AdventureWorks;  
  2. GO  
  3. SELECT * FROM Person.Address;  
  4. GO  
  5. SELECT plan_handle, st.text  
  6. FROM sys.dm_exec_cached_plans   
  7. CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st  
  8. WHERE text LIKE N'SELECT * FROM Person.Address%';  
  9. GO 

下面是结果集:

 
 
 
  1. plan_handle                                          text  
  2.  
  3. --------------------------------------------------   -----------------------------  
  4.  
  5. 0x060006001ECA270EC0215D05000000000000000000000000   SELECT * FROM Person.Address;  
  6.  
  7. (1 row(s) affected)  
  8.  
  9. Remove the specific plan from the cache.  
  10. DBCC FREEPROCCACHE (0x060006001ECA270EC0215D05000000000000000000000000);  

 

 

 

【编辑推荐】

SQL Server Agent服务

Sql server DAC连接的问题

SQL Server导出导入某数据库

SQL Server死锁测试

减少Sql server死锁现象的发生

THE END