掌握資料庫即時狀態是 DBA 的核心職責。SQL Server 提供圖形化的 Enterprise Manager 與底層系統預存程式兩套互補工具,前者適合日常巡檢,後者適合自動化腳本與深度診斷。

sp_helpdb 是最常用的資料庫結構查詢工具:
sp_helpdb [ [ @dbname = ] 'name' ]
master.dbo.sysdatabases 所有資料庫摘要(大小、狀態、相容性等級)。範例: 查詢 mydb 詳細資訊
EXEC sp_helpdb 'mydb'

CREATE PROCEDURE dbo.usp_LogDbSpaceUsage
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE #tmp (dbname sysname, filesize MB, spaceused MB, ...);
INSERT #tmp EXEC sp_msforeachdb 'EXEC sp_spaceused';
INSERT INTO dbo.DbSpaceHistory (dbname, filesize_mb, used_mb, log_date)
SELECT dbname, filesize, spaceused, GETDATE() FROM #tmp;
END
| 需求 | 推薦工具 | 理由 |
|---|---|---|
| 即時人工巡檢 | Enterprise Manager 任務版 | 視覺化、無需撰寫程式碼 |
| 定期自動化報表 | sp_helpdb + SQL Agent 排程 | 可整合至資料倉儲、觸發警示 |
| 深度疑難排解 | DMV (sys.database_files, sys.filegroups) | 回傳結構化資料、支援複雜查詢 |
結合圖形介面與程式化介面,建立「日巡檢+週報表+異常即時警示」三層監控體系,確保資料庫健康狀態全掌握。