我想检查选项以改进我的查询。
有时,我想在生产服务器上进行测试,所以我不能使用 DBCC FREEPROCCACHE 和 DBCC DROPCLEANBUFFERS 来清除整个服务器缓存。
您能否与我分享仅针对我的连接/范围进行一种“缓存清理”的方法?
谢谢。
我想检查选项以改进我的查询。
有时,我想在生产服务器上进行测试,所以我不能使用 DBCC FREEPROCCACHE 和 DBCC DROPCLEANBUFFERS 来清除整个服务器缓存。
您能否与我分享仅针对我的连接/范围进行一种“缓存清理”的方法?
谢谢。
DBCC FREEPROCCACHE (plan_handle | sql_handle | pool_name)
通过传递 plan_handle 或其他选项,我们将能够清除特定 sp 或查询的缓存。
缓冲区不保存在用户特定的表中,也不按用户存储 - SQL Server 无法选择性地清除它,因为它不知道为哪些查询保存了哪些项目;这样做会在几乎所有情况下产生不必要的开销(除了你现在尝试做的事情。对不起。)尽管如此,还是有选择的。
然而,有一些建议可以改善这个问题,即使这个问题无法避免:
本文对在这种情况下进行测试有其他想法。
如果停机时间可以,您可以使数据库脱机,然后立即使其联机。