SQL Server 2005 TempDB维护

我正在使用一个SQL Server 2005数据库,其中有一个文件组中的TempDB的8个文件。 第一个文件的初始大小是8MB,其他7个是2GB。 这个数据库是一个报告数据库,每晚从SSIS包中填入数据库。 包和报告使用了很多临时表。

这些文件已经增长到消耗大约300GB,均匀分布。 它将增长200MB无限制。 TempDB不备份,位于SAN上。

我读过你不应该在TempDB上使用SHRINKDATABASE或SHRINKFILE。 在这种情况下执行维护的正确方法是什么,以确保我们不会最大限度地减less磁盘空间并保持TempDB精简和平均。

感谢您的任何build议和知识。

这里是微软关于这个的文章307487 。

这归结为几个基本的方法:

  1. 重新启动SQL实例
  2. 使用DBCC SHRINKDATABASE
  3. 使用DBCC SHRINKFILE

所有这些都有你所知道的问题,但是我不确定是否有任何方法可以很好地执行这个任务,因为你基本上正在处理实例中最重要的一个数据库。 如果你有能力closures这个实例几分钟,这将是我想的最好的赌注。

请记住,如果你的tempdb已经增长了这么大,那么很有可能会再次到达那里。 如果这是一个主要问题,你应该调查为什么tempdb增长如此之大,并相应地计划。 人们对缩小操作感到不满的主要原因是数据库往往会随着需求增长而变大,除非出现错误。 它可能不适用于你,但这只是一个普遍的声明,我给出了关于数据库缩小的任何问题。