繁体   English   中英

SQL Server 2005-如何缩小tempdb

[英]SQL Server 2005 - how to shrink the tempdb

我的tempdb大小增长太多,因为我们在数据库中执行了太多事务。 有人可以让我知道如何在不重新启动服务器的情况下缩小此tempdb。 我尝试了DBCC SHRINKDATABASE,但没有帮助

提前致谢

您的tempdb大小应为...

它会再次增长,甚至在磁盘上更加分散,甚至在增长时也会阻塞。

更严重的是,我将tempdb的大小设置为合理,并且比现在稍大一些,关闭SQL,以确保110%删除旧文件,然后再次启动SQL Server ...

我发现缩小tempdb通常是一项麻烦的任务。

我以前使用的解决方案是将tempdb数据库的初始大小设置为数据库的实际所需大小。 然后,重新启动SQL Server服务将重新创建tempdb数据库,使其达到此分隔大小。

您可能还会发现以下Microsoft参考对于阅读很有帮助:

http://support.microsoft.com/kb/307487/en-gb

收缩数据文件。 从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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM