【发布时间】:2011-12-13 19:46:53
【问题描述】:
我正在优化一个查询,我担心 SQL Server 正在缓存执行计划,所以我想擦除它们。
我该怎么做?
【问题讨论】:
标签: sql sql-server-2008 sql-execution-plan
我正在优化一个查询,我担心 SQL Server 正在缓存执行计划,所以我想擦除它们。
我该怎么做?
【问题讨论】:
标签: sql sql-server-2008 sql-execution-plan
你应该这样做:DBCC FREEPROCCACHE;
我也这样做DBCC DROPCLEANBUFFERS;
使用 DBCC DROPCLEANBUFFERS 测试带有冷缓冲区缓存的查询 无需关闭并重新启动服务器。
要从缓冲池中删除干净的缓冲区,首先使用 CHECKPOINT 产生一个冷缓冲区缓存。这会强制所有脏页 当前要写入磁盘的数据库并清理缓冲区。后 你这样做,你可以发出 DBCC DROPCLEANBUFFERS 命令来删除所有 从缓冲池中缓冲。
【讨论】:
你会想要使用DBCC FREEPROCCACHE
从计划缓存中删除所有元素,从其中删除特定计划 通过指定计划句柄或 SQL 句柄来缓存计划,或者删除 与指定资源池关联的所有缓存条目。
【讨论】: