【譯】SQL Server誤區30日談-Day9-數據庫文件收縮不會影響性能


    本系列文章是我在sqlskill.com的PAUL的博客看到的,很多誤區都比較具有典型性和代表性,原文來自T-SQL Tuesday #11: Misconceptions about.... EVERYTHING!!,經過我們團隊的翻譯和整理發布在AgileSharp上。希望對大家有所幫助。

 

誤區 #9: 數據庫文件收縮不會影響性能

Hahahahahahahahahahahahahahahaha

(擦掉眼角的淚水和掉在鍵盤上的鼻涕,我才能勉強把注意力集中在屏幕上)

 

錯誤!

   

    收縮數據庫文件唯一不影響性能的情況是文件末尾有剩余空間的情況下,收縮文件指定了TruncateOnly選項。

    收縮文件的過程非常影響性能,這個過程需要移動大量數據從而造成大量IO,這個過程會被記錄到日志從而造成日志暴漲,相應的,還會占去大量的CPU資源。

    不僅在收縮的過程中影響性能,並且在文件收縮之后同樣影響應能,收縮產生的大量日志會被事務日志傳送,鏡像,復制能操作重復執行。而空間不夠時,文件還需要填0初始化從而影響性能(除非你開啟的不用填零初始化的選項)。

    這還不算最糟,最糟的結果是文件收縮造成了大量的索引碎片,對於scan操作來說這個碎片影響性能。

    不幸的是,收縮數據庫的代碼不是我寫的(如果要是我寫的話,我一開始就不會允許這種機制的)所以我們唯一能做的就是接受這種操作。

    如果你想找到替代數據庫文件收縮的方式,請看這篇博文:Why you should not shrink your data files,或者是一開始你就對文件做好規划:Importance of data file size management。還有這篇:TGIF Time Warp.

 

    孩子,記住這一點:

  •     數據文件收縮是邪惡的
  •     收縮數據庫更加邪惡
  •     自動收縮那簡直就是十惡不赦了

 

    簡單的對收縮說NO就可以讓我們永遠遠離其造成的煩惱。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM