2010-06-24 110 views
3

我的tempdb大小增長太多,因爲我們在數據庫中執行的事務太多。有人可以讓我知道如何在不重新啓動服務器的情況下縮小此tempdb。我曾嘗試DBCC SHRINKDATABASE,並沒有幫助SQL Server 2005 - 如何縮小tempdb

在此先感謝

回答

0

收縮的數據文件。從tempdb開始:

dbcc shrinkfile ('tempdev') 

dbcc shrinkfile ('templog') 

如果您有其他tempdb數據文件,您可能還需要縮小它們。你可以從系統數據字典中看到這個。查看「名稱」列。

select * from sys.database_files 
4

你tempdb的是它需要的大小...

它只是將再次增長,只是更加零散的磁盤,並可能阻止雖然增長得。

更嚴重的是,你可以設置tempdb的大小soemthing理智和比現在稍大,關閉SQL,刪除舊文件,以110%的把握,再升啓動SQL Server ...

3

我發現縮減tempdb往往是一件麻煩的事情。

我以前使用的解決方案是將tempdb數據庫的初始大小設置爲數據庫的實際所需大小。然後重新啓動SQL Server服務將重新創建tempdb數據庫到這個確定的大小。

您也可能會發現下面的Microsoft參考是有用的閱讀:

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

0

即使「DBCC SHRINKFILE」你能收到像「DBCC SHRINKFILE警告:第1頁:878039不能因爲移動它是一個工作文件頁面。「導致不縮小。

我發現,很好地解釋這種情況,告訴如何解決辦法以及如何成功地tempdb收縮而無需重新啓動SQL一個博客: 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