Sql-Server

縮小日誌文件會影響 SQL Server 中的索引嗎?

  • September 1, 2017

在數據庫中,日誌文件從 32 增長GB到 70 GB,並且 %log space used變為 > 97%。在我使用log backupthen %of log space used 之後 < 1% 但大小仍然是 70 GB

現在我想縮小文件大小,但有以下疑問:-

  1. 縮小日誌文件是好的,可以重用空VLF文件以及減小文件大小。
  2. 如何確定我需要縮小文件大小的百分比…
  3. 縮小日誌文件是否會刪除數據庫的索引?

請提供任何指導。

我將回答這個特定的部分

收縮日誌文件是否會刪除數據庫的索引。

我相信你的意思是縮小日誌文件會帶來索引碎片,而不是它不會導致索引碎片。它絕對不會刪除索引我不確定是什麼讓你問這個,但請放心,不會刪除任何索引。

對於您問題的其他部分

日誌文件的收縮與數據文件的收縮一樣糟糕。原因是,當您記錄文件在收縮後再次增長並觸發自動增長事件時,這會強制程序停止,直到通過自動增長事件提供可用空間。因此,現在想想這種自動增長在大型 OLTP 數據庫上經常發生,您可以看到一個程序必須等待多少次才能完成自動增長。最好的方法是預先調整日誌文件的大小。請參考Simple Talk 的 Autogrowth 文章。這將幫助您調整日誌文件的大小並設置適當的自動增長值。兩者同樣重要。

如果空間確實是個問題,而您現在無論如何都需要它並且別無選擇,那麼您可以縮小日誌文件,但不要養成習慣。找出迫使它增長超過預期的過程並相應地調整日誌文件的大小。

一些可供閱讀的部落格

提高事務日誌吞吐量的步驟

事務日誌 VLF 太多太少

最好不要收縮日誌。

顯然,日誌增長是有原因的,而且很可能會再次發生。如果你縮小它,你將面臨自動增長,這可能也不好。

順便說一句 - 確保自動增長是在MBs,而不是百分比。也許,您應該更頻繁地進行日誌備份。無論如何,隨著時間的推移監視日誌的大小和內部使用情況,然後如果需要縮小,請使用DBCC SHRINKFILE.

總是在裡面留一些額外的空間。

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