HEJ,
我的TEMPDB.mdf在安装在Windows Server 2003上的MS SQL Server 2005上增长到了42GB。
最后date的变化是在晚上31/01/2013。
所以,我想知道这是否可以缩小呢?
我build议阅读TechNet文章“在SQL Server 2005中使用tempdb” 。 我不build议尝试收缩tempdb,因为它基本上用作临时数据库,用于在SQL运行时将查询的中间结果存储在其他内容中,而且收缩操作可能甚至无法在tempdb上使用。 暂时减小tempdb大小的方法不是缩小操作。 只需重新启动SQL服务器 – SQL将删除tempdb并复制模型数据库以创build新的tempdb。 如果磁盘空间是一个问题,这是我将用来临时控制tempdb的唯一方法。
如果tempdb不断增长到这样的大小,那么你有一个数据库进程(或多个进程)一起处理tempdb中的大量数据,导致它增长。 如果是这样的话,那么阻止它今后发展壮大的唯一方法是确定它是什么过程并改变它们。 如果这种增长是一个你以前没见过的一次性交易,那么你可能只需要重新启动SQL服务器,而不必再担心它,但是如果它一直达到这个规模,并且你不能确定为什么改变你的后端查询和存储过程,以不使用tempdb,那么你应该设置tempdb的大小略高于42 GB,以减less自动增长造成的碎片。
另请阅读“如何收缩SQL Server中的tempdb数据库” 。 详细介绍了3种方法。 您可以在不重新启动SQL Server的情况下执行3中的2个操作,但是它们在tempdb中都不需要任何活动,这在操作性SQL服务器上非常困难。
您也可以查看您的查询并对其进行重新编码,以使它们对tempdb的影响较小。