常见问题 SQL Server数据库大小监控
怎么查数据库当前实际占用大小
用 T-SQL 与 SSMS 查询各库数据文件物理占用,区分物理大小与逻辑大小,并给出上限预警建议。
发布于 2026/11/11
所属频道 SQL Server
简短答案
看数据文件的物理大小(磁盘上占了多少),而不是逻辑表行数。一条 T-SQL 出各文件 MB,或在 SSMS 看文件属性。
排查步骤
- T-SQL 查各库各文件的物理大小(
size单位 KB):
SELECT DB_NAME(dbi.database_id) AS db,
mdf.size/128 AS mdf_mb,
log.size/128 AS log_mb
FROM sys.master_files mdf
JOIN sys.master_files log ON log.database_id = mdf.database_id AND log.type = 1
JOIN sys.database_recovery_status dbi ON dbi.database_id = mdf.database_id
WHERE mdf.type = 0;
- 或在 SSMS:右键数据库 → 属性 → 文件,直接看各文件大小。
- 日志文件(.ldf)也可能不小,别只看数据文件。
- 对照 SQL Server Express 的上限(单库 10GB),在逼近前做规划;版本能力以 SQL Server 2022 Developer 等条目页核对。
现象对照表
| 指标 | 说明 |
|---|---|
| 物理大小 | 磁盘实际占用,决定能否继续写 |
| 逻辑大小 | 表行数/数据量,不直接对应空间 |
操作小结
- 用
sys.master_files查物理大小最可靠。 - 数据文件与日志文件都要看。
- 设阈值预警(如 80% 上限),提前处理。