2009-08-18 116 views
1

我們有一個每週維護計劃來收縮所有用戶數據庫並重建它們的索引。直到我們創建一個只讀數據庫爲止,這個工作正常,現在每次計劃運行時它都會因爲它的只讀狀態而開始處理這個數據庫時失敗。SQL Server 2005收縮和重建索引

據我所見,我們有兩個選擇從數據庫中刪除只讀標誌,這是可能的,但由於數據庫只更新一次四分之一從性能的角度來看是有道理的,以利用只讀功能。或者手動選擇計劃應該運行的數據庫,即除了只​​讀數據庫之外的所有用戶數據庫,這就要求人們記住將任何新數據庫添加到計劃中。

有沒有人有這樣做的更好方式的任何建議?

感謝

尼爾

回答

1

你爲什麼要擺在首位收縮數據庫? 也沒有必要保持讀取opnly數據庫的那樣。

1

如果您不想自定義維護計劃,我會刪除只讀標誌。

你爲什麼縮小數據庫呢?如果數據庫增長到給定的大小,那麼這可能是自然的當前大小。

另請注意,索引重建(經驗法則)要求目標表大小的120%的可用空間。例如,500 MB的表格需要600 MB的可用空間。

這是毫無意義的收縮然後重建......,你就會有可怕的文件碎片過多

1

我想可以修改維護計劃開始與「執行T-SQL語句」的步驟,從而消除了只讀標誌(ALTER DATABASE database-name SET READ_WRITE)並添加最後一步以重置它: ALTER DATABASE數據庫名稱SET READ_ONLY