首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBCC FREEPROCCACHE和DBCC DROPCLEANBUFFERS类似于特定范围

DBCC FREEPROCCACHE和DBCC DROPCLEANBUFFERS类似于特定范围
EN

Stack Overflow用户
提问于 2012-05-23 22:44:27
回答 3查看 7.8K关注 0票数 2

我想检查选项以改进我的查询。

有时,我想在生产服务器上进行测试,因此不能使用DBCC FREEPROCCACHE和DBCC DROPCLEANBUFFERS来清除整个服务器缓存。

你能和我分享一下只为我的连接/作用域做一种“缓存清理”的方法吗?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-09-12 19:26:26

DBCC FREEPROCCACHE (plan_handle | sql_handle | pool_name)

通过传递plan_handle或其他选项,我们将能够清除特定sp或查询的缓存。

票数 5
EN

Stack Overflow用户

发布于 2012-05-24 01:25:07

缓冲区不保存在特定于用户的表中,也不存储在每个用户中- SQL Server无法有选择地清除它,因为它不知道哪些查询保存了哪些项;这样做几乎在所有情况下都会产生不必要的开销(除了您现在尝试做的事情)。对不起。)尽管如此,还是有选择的。

然而,有一些建议可以改善这个问题,即使这个问题无法避免:

  • 您可以将with(RECOMPILE)用于强制查询查找新计划,但这不会清除高速缓存。
  • 您可以运行每个查询两次,以查看数据缓冲后运行的速度/速度。
  • 您可以反复交替使用这两种方法,以查看它们是否变得更快,以及速度差异收敛到什么程度。
  • 您可以间隔一两天运行它们,或者在服务器重置后运行它们。(这是如果生产服务器偶尔重置的话。)

对于在这种情况下进行测试,This article还有其他想法。

票数 2
EN

Stack Overflow用户

发布于 2012-05-24 04:33:00

如果停机时间正常,您可以使数据库离线,然后立即将其联机。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10722339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档