首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 取得資料庫檔案大小資訊的實用方法

     編輯:關於SqlServer

掌握 SQL Server 2005 資料庫大小的成長趨勢至關重要,DBA 可據此規劃未來空間需求、設定警示通知、安排繁重負載時段。本文介紹一種簡單有效的方法來擷取此資訊。

兩種可行的方法

每個資料庫都包含關於資料庫檔案大小的資訊。要一次性從單一資料庫檢索相關資料,主要有兩種方式:

  • sp_spaceused:回傳目前資料庫中資料表、索引檢視表或 Service Broker 佇列所用的磁碟空間。雖可透過腳本擷取各資料庫資訊,但輸出格式不易閱讀,且可能需使用自訂游標。
  • sp_msforeachdb:這個未文件化的系統預存程序能將任意 SQL 腳本傳遞給實例上的每個資料庫執行,自動遍歷所有資料庫,免去逐一指定名稱的麻煩。本文將採用此方法擷取各資料庫檔案大小資訊。

建立記錄表並擷取資料

資料來源為 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:查看擷取到的資料庫大小資料

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved