Sql-Server
自動增長、收縮和數據庫性能
我已經問過一些關於自動增長和收縮的問題。但我對此有一些疑問。
- 我有一個每月增長約 300 MB 的數據庫。那麼最好將其設置為 300 MB 的 Autogrowth 嗎?現在設置了 10 MB。
- 我有很多小型數據庫,其中的數據確實約為 50 MB。但它的物理大小約為 900 MB。(所以 850 是可用空間)。我沒有縮小這個數據庫。好像當數據被添加自動增長時我再次縮小它。但是很少向這個數據庫添加數據。所以我認為未來一年它不會增長超過 200MB。
那麼我應該縮小數據庫嗎?如果我保持原樣?這會導致任何性能問題嗎?或者數據庫中有更多的可用空間(超過 90%)會導致任何問題?我認為大多數人認為物理尺寸大會導致性能問題。這是真的還是假的? 3. SQL Server 2008 R2 Express 數據庫大小限制為 10 GB。那麼它是mdf和ldf文件的物理大小嗎?因為如果我應該在任何時候縮小數據庫,我需要考慮這一點。
- 是的,選擇一個能夠確保您在業務週期中最小化或消除增長事件數量的自動增長規模是理想的。我敢說,如果每月 300 MB 是可預測的,那麼除了設置更合理的自動增長設置之外,您還應該立即將文件增長 4 或 8 GB,以允許一兩年的增長而無需擔心中斷性增長事件(即使使用即時文件初始化,數據文件增長仍會導致事務在完成時等待)。如果您知道您將每月增長大約 300 MB,為什麼要推遲所有這些增長事件?在此期間你打算如何處理這個空間?按月出租?
- 您可能可以將該特定數據庫縮小到 200 MB。請務必使用
DBCC SHRINKFILE
or來執行此操作ALTER DATABASE MODIFY FILE
,而不是DBCC SHRINKDATABASE
。- Express 限制僅針對數據文件。您可以擁有一個 9.99 GB 的數據文件和一個 600 GB 的日誌文件,SQL Server 不會抱怨。好吧,它會以其他方式,但不是由於超出任何任意文件大小限制。也就是說,您應該確保進行簡單恢復或以合理的速度備份您的日誌。日誌文件永遠不應該不受控制地增長 - 如果您擔心 Express 實例上的日誌文件,那麼有些事情是不對的。請參閱以下文章進行大量討論: