Sql-Server
縮小日誌文件會影響 SQL Server 中的索引嗎?
在數據庫中,日誌文件從 32 增長
GB
到 70GB
,並且 %log space used
變為 > 97%。在我使用log backup
then %of log space used 之後 < 1% 但大小仍然是 70GB
。現在我想縮小文件大小,但有以下疑問:-
- 縮小日誌文件是好的,可以重用空
VLF
文件以及減小文件大小。- 如何確定我需要縮小文件大小的百分比…
- 縮小日誌文件是否會刪除數據庫的索引?
請提供任何指導。
我將回答這個特定的部分
收縮日誌文件是否會刪除數據庫的索引。
我相信你的意思是縮小日誌文件會帶來索引碎片,而不是它不會導致索引碎片。它絕對不會刪除索引我不確定是什麼讓你問這個,但請放心,不會刪除任何索引。
對於您問題的其他部分
日誌文件的收縮與數據文件的收縮一樣糟糕。原因是,當您記錄文件在收縮後再次增長並觸發自動增長事件時,這會強制程序停止,直到通過自動增長事件提供可用空間。因此,現在想想這種自動增長在大型 OLTP 數據庫上經常發生,您可以看到一個程序必須等待多少次才能完成自動增長。最好的方法是預先調整日誌文件的大小。請參考Simple Talk 的 Autogrowth 文章。這將幫助您調整日誌文件的大小並設置適當的自動增長值。兩者同樣重要。
如果空間確實是個問題,而您現在無論如何都需要它並且別無選擇,那麼您可以縮小日誌文件,但不要養成習慣。找出迫使它增長超過預期的過程並相應地調整日誌文件的大小。
一些可供閱讀的部落格
最好不要收縮日誌。
顯然,日誌增長是有原因的,而且很可能會再次發生。如果你縮小它,你將面臨自動增長,這可能也不好。
順便說一句 - 確保自動增長是在
MBs
,而不是百分比。也許,您應該更頻繁地進行日誌備份。無論如何,隨著時間的推移監視日誌的大小和內部使用情況,然後如果需要縮小,請使用DBCC SHRINKFILE
.總是在裡面留一些額外的空間。