DBCC FREESYSTEMCACHE ('TokenAndPermUserStore') 什么时候可以挂在 SQL Server 2005

When can DBCC FREESYSTEMCACHE (‘TokenAndPermUserStore’) hang in SQL Server 2005

我们在 SQL Server 2005 上 运行 生产数据库服务器,我们 运行 遇到导致 运行 查询延迟的高 TokenAndPermUserStore 问题。 SQL 服务器上有一个计划作业,每 1 小时运行一次并执行 DBCC FREESYSTEMCACHE('TokenAndPermUserStore'),但是这个作业被挂起了许多小时,最终不得不被杀死。 DBCC FREESYSTEMCACHE 挂起这么久的可能原因是什么。传入的查询会导致它吗?

将 运行 DBCC FREESYSTEMCACHE 作为一项维护工作绝不是一个好主意。也许一次关闭。所以你有缓存问题。作为 DBA,我会检查。

1) 您上次更新统计数据是什么时候。

2) 我的索引碎片。

3) 另外导致大量缓存问题和大量 DBA 的原因是可爱的临时查询。有 DMV 脚本可以帮助进行临时查询。

4) SSMS 有一个很酷的报告工具,用于存储过程的 HIGH CPU 和 IO,调查一下。

可能有很多问题可以解决您的缓存问题,而不是使用 DBCC FREESYSTEMCACHE 清除它。因为一切都必须重新编译。

简短的回答看起来你可能在使用 sqlserver 2005 中的错误。

当应用程序使用大量即席查询时,似乎会出现此问题的较长答案。来自 Microsoft 的 article 似乎是非常接近的匹配。建议包括修补服务器和限制临时查询。

了解更多关于什么正在占用你的缓冲区是一个很好的学习经验,与你的问题相关的讨论 here 上面提到的查询可以让您测量 space TokenAndPermUserStore 占用了多少,10 megs 开始担心,50 megs + 你可能有问题

希望你能尽快修补你的盒子...