[英]SQL Server 2005 - how to shrink the tempdb
我的tempdb大小增长太多,因为我们在数据库中执行了太多事务。 有人可以让我知道如何在不重新启动服务器的情况下缩小此tempdb。 我尝试了DBCC SHRINKDATABASE,但没有帮助
提前致谢
您的tempdb大小应为...
它会再次增长,甚至在磁盘上更加分散,甚至在增长时也会阻塞。
更严重的是,我将tempdb的大小设置为合理,并且比现在稍大一些,关闭SQL,以确保110%删除旧文件,然后再次启动SQL Server ...
我发现缩小tempdb通常是一项麻烦的任务。
我以前使用的解决方案是将tempdb数据库的初始大小设置为数据库的实际所需大小。 然后,重新启动SQL Server服务将重新创建tempdb数据库,使其达到此分隔大小。
您可能还会发现以下Microsoft参考对于阅读很有帮助:
收缩数据文件。 从tempdb:
dbcc shrinkfile ('tempdev')
dbcc shrinkfile ('templog')
如果您有tempdb的其他数据文件,则可能还需要缩小它们。 您可以从系统数据字典中看到这一点。 在“名称”列中查找。
select * from sys.database_files
即使使用“ DBCC SHRINKFILE”,您也会收到类似“ DBCC SHRINKFILE:页面1:878039不能移动,因为它是工作文件页面”的警告。 不会导致收缩。
我找到了一个博客,该博客很好地解释了这种情况,并介绍了解决方法以及如何在不重新启动SQL的情况下成功缩小tempdb的方法: http : //adventuresinsql.com/2009/12/how-to-shrink-tempdb-in-sql-2005/
因此,这是该博客的一个示例:
DBCC FREEPROCCACHE
GO
USE [tempdb]
GO
DBCC SHRINKFILE (N'tempdev')
GO
DBCC SHRINKDATABASE(N'tempdb')
GO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.