2012-06-08 49 views
1

我有一個數據庫,其大小增長非常快。當然,它的大小是aruond 60GB,但是在執行db_spaceused存儲過程後,我可以驗證40GB以上的空間是未使用的(未使用的空間是不同的,而不是預留空間,我不理解它是用於增長的)。實際的數據大小約爲10-12 GB,預留空間中的GB數量很少。在sql server db中處理未使用的磁盤空間db

現在收集未使用的空間,我試圖使用收縮操作,但事實證明,這並沒有幫助。進一步搜索後,我還發現不使用收縮數據庫,因爲這會導致數據片段生成,導致磁盤操作時出現問題。現在我真的不知道還有什麼其他操作,我應該嘗試回憶空間並回憶數據庫。我unsertand,由於大小查詢可能需要更長的預期和回收這個空間可以幫助性能(不知道)。

在調查時,我也遇到了Gererate Scripts功能。它有助於導出數據,架構,但我不確定它是否也有助於創建腳本(每用戶,許可和其他東西),以便腳本將幫助使用create scema創建數據庫的副本(深層複製/克隆),然後用數據填充到其他數據庫/服務器?

任何指針都會有幫助。

+0

更多有關http://dba.stackexchange.com/的問題 –

回答

3

如果您的數據庫是60Gb,則意味着它已經增長到60GB。即使數據量僅爲20Gb,您可能也會經常發生數據增長(例如夜間索引維護作業)。建議將保留在60Gb的數據庫。不要試圖回收空間,只會造成傷害,無論是什麼原因導致數據庫增長到60Gb以開始,它可能會再次發生並觸發數據庫增長。

其實你應該到對面。嘗試確定爲什麼它增長到60Gb並推斷當數據達到30Gb時會發生什麼。數據庫會增長到90Gb嗎?如果是的話,你應該增長它現在到90Gb。你想要的最後一件事是隨機發生增長,並且可能在關鍵時刻耗盡磁盤空間。實際上,如果您的服務器啓用了Instant File initialization,您應該立即進行檢查。

當然現在的問題是:什麼會導致3倍的數據大小增長,以及如何識別它?我不知道任何簡單的方法。我建議先看看你的SQL代理作業。檢查您的維護腳本。看看應用程序本身,它是否有數據增長和刪除的模式?看看過去的備份(你確實擁有它們,對嗎?)並進行比較。

順便說一句我假設盡職調查,你檢查數據文件已增長到60Gb。如果日誌文件增長容易,則表示您啓用了完整恢復模式並忘記備份日誌。

相關問題