我已经看到了这个问题,最终发布的修复程序实际上是我使用Microsoft CSS的直接结果。没有公开的知识库文章可解决此问题。请确保已对SQL Server 应用Service Pack 4和最新的累积更新(在撰写本文时,这是累积更新#3(9.00.5259))。
在发布此修补程序之前,Microsoft的建议是仅停止创建#temp表(类似于KB#916086)。由于这将意味着大量重写许多报告过程,因此,我的解决方法(无论跟踪标志或临时文件布局如何)都是每隔一个周末重新启动集群。uck
为了跟踪tempdb的使用情况,周围有几个脚本可以提供帮助,例如,请参见Adam Machanic的sp_whoIsActive,特别是:
还有@SQLSoldier的此脚本(和注释中的脚本):
我将确保所有游标都在使用LOCAL STATIC READ_ONLY FORWARD_ONLY
(请参阅this和this),并查看是否有任何已知的昂贵查询广泛使用#temp表/ @table变量,CTE,或者可能包含不必要的排序或导致哈希联接...所有这些都可能导致问题(我怀疑您会找到一个黄金原因)。最简单的清除方法是使用“廉价”的起点,它将使用适当且便宜的游标选项代替默认值。
同时,我将(a)安装CU#3,并(b)调用PSS。告诉他们您正在寻找一个非常具体的修复程序,该修复程序已被确认为错误并已作为私有修补程序发布给其他用户:“ VSTS#109112-临时表延迟删除对某些工作负载不起作用。” 您可能必须先支付案件费用,但由于是错误,应退还该费用。
SELECT @@VERSION;
啊 根据我的回答,我的第一个建议是确保您使用的是SP4和最新的累积更新。