程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQL Server誤區30日談 第9天 數據庫文件收縮不會影響性能

SQL Server誤區30日談 第9天 數據庫文件收縮不會影響性能

編輯:更多數據庫知識

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

錯誤!

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

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

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

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

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

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

    孩子,記住這一點:

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved