掌握 SQL Server 2005 資料庫大小的成長趨勢至關重要,DBA 可據此規劃未來空間需求、設定警示通知、安排繁重負載時段。本文介紹一種簡單有效的方法來擷取此資訊。
每個資料庫都包含關於資料庫檔案大小的資訊。要一次性從單一資料庫檢索相關資料,主要有兩種方式:
資料來源為 sys.database_files 系統檢視表,包含檔案大小、資料庫狀態、成長方式(按絕對大小或百分比)、是否唯讀等資訊。先建立記錄表:
IF OBJECT_ID('DatabaseFiles') IS NULL
BEGIN
SELECT TOP 0 * INTO DatabaseFiles
FROM sys.database_files
ALTER TABLE DatabaseFiles
ADD CreationDate DATETIME DEFAULT(GETDATE())
END
再利用 sp_msforeachdb 將各資料庫的檔案資訊寫入記錄表:
EXECUTE sp_msforeachdb 'INSERT INTO DatabaseFiles SELECT *, GETDATE() FROM [?].sys.database_files'
腳本中 [?] 會被各資料庫名稱取代,實現自動遍歷。查詢 DatabaseFiles 表即可獲得所有資料庫的檔案大小歷史記錄,便於趨勢分析與容量規劃。

圖 1:查看擷取到的資料庫大小資料