2010-02-03 38 views
2

我已經閱讀過其他文章,並且已經完成了幾個小時的研究,但我仍然沒有明智之舉。 我有一個數據庫在數據文件中是65個字節,目前在日誌文件中有230個字節。我正在嘗試重新設計數據庫,以便它更高效,但是在進行模式更改時,日誌文件會嘗試變得過大,並且Windows聲音表明它已超出磁盤空間。SQL Server 2005事務日誌總是太大

我試圖縮小文件,最低的是〜220演出。使用DBCC OPENTRAN我可以看到沒有活動事務。使用select * FROM sys.dm_tran_database_transactions我可以看到沒有什麼有趣的事情發生。

我對我讀到的內容的解釋是,如果存在活動事務,那麼日誌文件應該很大,並且一旦提交了所有事務,文件應該能夠收縮到理論上非常小的東西。正確?

我已經試過備份日誌與TRUNCATE_ONLY其次DBCC SHRINKFILE(數據庫,2)

我能做些什麼來縮小這個文件的東西更便於管理?

回答

2

你讀過Kimberly Tripp的文章了嗎? (關於這個主題的標準參考):8 Steps to better Transaction Log throughput

您可能會遇到VLF碎片:Transaction Log VLFs - too many or too few?。運行此命令可以查出:

DBCC LOGINFO; 

你有沒有遵循這個標準程序收縮日誌:

1)備份事務日誌(即使你是在簡單模式下),以清除所有活動。

BACKUP LOG [MyDB] 
TO DISK = N'E:\db.bak' 
GO 

2)收縮事務日誌。

USE [MyDB] 
GO 

DBCC SHRINKFILE ('MyDB_Log', TRUNCATEONLY) 
GO 

3)修改事務日誌的大小和配置自動增長:

USE [MyDB] 
GO 

ALTER DATABASE [MyDB] 
    MODIFY FILE (NAME = N'MyDB_Log', SIZE = 1024000KB, FILEGROWTH = 1024000KB) 
GO 
+0

非常感謝你。我沒有遇到過那篇文章。 對我來說,這是VLF碎片。 如果其他人有這個問題,請運行DBCC LOGINFO;並查看返回的行數。文章建議如果有> 50,那麼碎片可能是一個問題。在文章中的第8點之後,日誌文件現在只有230MB! – Blootac