Sql-Server

我應該定期縮小我的數據庫或至少我的日誌文件嗎?

  • May 24, 2013

我的問題是,我應該定期執行一個或兩個收縮命令,

DBCC 收縮數據庫

要麼

DBCC 收縮文件

=============================

背景

Sql Server:數據庫為 200 gigs,日誌為 150 gigs。

執行這個命令

SELECT name ,size/128.0 - 
CAST(FILEPROPERTY(name, 'SpaceUsed') AS int) / 128.0 
AS AvailableSpaceInMB FROM sys.database_files;`

產生這個輸出..

MyDB:159.812500 MB 免費

MyDB_Log:149476.390625 MB 可用

所以似乎有一些可用空間。

我們的備份計劃如下:

  1. 事務日誌 每小時一次
  2. 每週兩次完整備份
  3. 每週 5 次差異備份

我強烈建議您閱讀Paul Randal關於為什麼不應該縮小數據文件(日誌文件是,數據文件不)的文章。

我不會引用或試圖總結這篇文章,因為我真的不公平!只是我認為你至少應該知道的事情。

縮小文件的唯一優勢是回收磁碟空間,但需要注意的是 -如果您的數據庫只是要增長以再次填充該空間,那麼從長遠來看,縮小它實際上可能是有害的。這是因為,在縮減之後,SQL Server 將不得不隨著磁碟空間的增長而回收磁碟空間(這需要時間,雖然不多),並且可能會導致物理磁碟上的碎片(更多的問題)。

如果文件變得比平時大得多,並且您想要恢復硬碟空間,那麼請進行縮小。如果您只是想知道收縮是否應該成為您定期維護的一部分,那麼它不應該。

引用自:https://dba.stackexchange.com/questions/11330