2009-07-12 45 views

回答

10

縮小數據庫時,會消耗資源來縮小數據庫。遇到問題的時候,數據庫需要再次增長,並且假設您設置了自動增長,它將消耗更多資源以實現自動增長。持續自動縮小(或縮小爲維護計劃的一部分)將導致物理磁盤碎片。

如果啓用自動增長,它被設置爲1MB默認的常數,汽車的增長會消耗大量的資源。

這是大小最佳實踐你的數據庫的大小適宜,預計初始大小加上預期增長在一段(一個月,一年,不管期間您認爲合適的)。您不應該使用自動收縮或使用收縮作爲維護程序的一部分。

您還應該設置你的自動增長到MB(不是數據庫%當汽車越來越多,它需要先計算%,再增長的數據庫)。您還應該將汽車的增長率設定爲合理的數量,以確保它不會每隔10分鐘增長一次,試着每天瞄準一兩次增長。

你也應該看看設置即時初始化您的SQL Server。

祝你好運,

馬特

+3

+1很好的回答這個問題。我想說一個月或一年的增長。此外,數據文件中的可用空間應該是1.2最大的表8,以便進行索引維護等)...但是索引維護當然可以爲您確定理想的數據文件大小。 – gbn 2009-07-12 13:45:13

0

是的,它可能會影響性能一點。當數據庫運行時,它不關心磁盤空間的使用情況,更多關於高效的數據檢索/持久性。

1

明白,當你收縮數據庫時,頁面將會重新安排是很重要的。數據文件末尾的頁面移動到文件開頭的開放空間,不考慮碎片。

聚簇索引決定表中數據的物理順序。因此,想象你剛剛創建了一個聚集索引,它將物理地重新排序該表中的數據。那麼,當你執行一個縮減命令時,剛剛在創建聚集索引期間整齊排列的數據現在可能會失序,這將影響SQL有效使用它的能力。

所以,你做一個收縮操作任何時候,你必須對所有後續查詢影響性能的潛力。但是,如果在收縮後重新執行聚簇索引/主鍵,則可以幫助對收縮操作期間可能引入的大部分碎片進行碎片整理。如果性能至關重要,但你也不得不經常收縮,那麼在理想的情況下,每次收縮操作後你都會想重新做你的索引。

相關問題