DBAtlas · 数据库运维图谱

显示数据库总大小

Oracle

SELECT ROUND(SUM(bytes)/1024/1024/1024, 2) AS total_gb
FROM dba_data_files;

仅统计已用段时,汇总 dba_segments。TEMP 需加上 dba_temp_files。

PostgreSQL

SELECT pg_size_pretty(pg_database_size(current_database()));

所有数据库:SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database ORDER BY 2 DESC;

MySQL

SELECT table_schema AS db,
       ROUND(SUM(data_length + index_length)/1024/1024, 1) AS mb
FROM information_schema.tables
GROUP BY table_schema
ORDER BY mb DESC;

对于 InnoDB,该值为估算值;精确的文件大小请在操作系统层面检查 ibdata/数据文件。

SQL Server

EXEC sp_spaceused;
-- All databases:
SELECT DB_NAME(database_id) AS db,
       CAST(SUM(size) * 8.0 / 1024 AS DECIMAL(10,1)) AS mb
FROM sys.master_files
GROUP BY database_id;

size 列以 8 KB 页为单位;* 8 / 1024 换算为 MB。

MongoDB

db.stats(1024*1024)
// returns the dataSize, storageSize, indexSize fields in MB

storageSize 是压缩后的磁盘占用大小;dataSize 是未压缩的逻辑大小。

Redis

INFO memory
# the used_memory_human line gives the total size in memory
DBSIZE  # number of keys

Redis 基于内存;“大小”指 RAM 使用量。RDB/AOF 文件大小是持久化到磁盘的状态。

在 DBAtlas 中打开 →