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