Sql server 2005 MSSQL Server 2005临时数据库问题

Sql server 2005 MSSQL Server 2005临时数据库问题,sql-server-2005,Sql Server 2005,所以我有一个行为怪异的数据库。我正在监视服务器上的所有活动,tempdb不断增长。它在大约45分钟内增长了30gb。我一直在检查tempdb中分配的空间,它总是大约8mb。我知道它并不需要分配的所有空间,我已经看到一个事务发生在tempdb基本为空的情况下,并且它还在增长。 在我看来,引擎没有使用以前分配的空间,而是选择使用更多的硬盘空间。 我注意到今天早些时候我们的tempdb非常大,并且重新启动了SQL,这使tempdb的大小降到了一个很好的大小,但从那以后它又在增长,并且不断重新启动SQL

所以我有一个行为怪异的数据库。我正在监视服务器上的所有活动,tempdb不断增长。它在大约45分钟内增长了30gb。我一直在检查tempdb中分配的空间,它总是大约8mb。我知道它并不需要分配的所有空间,我已经看到一个事务发生在tempdb基本为空的情况下,并且它还在增长。 在我看来,引擎没有使用以前分配的空间,而是选择使用更多的硬盘空间。
我注意到今天早些时候我们的tempdb非常大,并且重新启动了SQL,这使tempdb的大小降到了一个很好的大小,但从那以后它又在增长,并且不断重新启动SQL不是一个选项,因为这是一个生产环境。我限制了此服务器上的hd空间,因此需要将tempdb保持在合理的大小。

您对正在运行的脚本进行了分析吗?您是否使用探查器来确定SQL活动

我的第一个想法是使用临时表(#table)和可能的笛卡尔乘积联接的脚本


请注意,在启动SQL server时会重新创建tempdb,因此在重新启动服务时它会被截断。

我控制的所有数据库都不会使用temp表。据我所知,唯一的笛卡尔连接每周运行一次。我现在正在运行分析器,试图弄清楚发生了什么。我知道它会在启动时截断tempdb。我们专门为此重新启动了它,因为我们的硬盘空间不足。好的,让我们等待您的配置文件完成,也许这将提供一些关于正在发生什么的见解。您是否运行过任何DMV?此外,联接、排序(order by)和某些dbcc命令使用tempdb for storage创建结果集。在你的个人资料输出中也可以找到这些。好吧,我们发现其中一个作业有一个步骤,其中有很多奇怪的数据操作,正在消耗tempdb。一旦这是固定的一切应该再次工作。谢谢你的帮助。很高兴发现了问题。如果是这样,则应将此标记为已解决。