postgreSQL數據字典簡介3-存儲空間類
程序员文章站
2022-05-24 09:14:35
...
一、空間相關系統函數簡介
名称 |
返回类型 |
描述 |
|
|
存储一个特定值(可能压缩过)所需的字节数 |
|
|
指定 OID 的数据库使用的磁盘空间 |
|
|
指定名称的数据库使用的磁盘空间 |
|
|
附加到指定表的索引所占的总磁盘空间 |
|
|
指定表或索引的指定分叉( |
|
|
|
|
|
把人类可读格式的带有单位的尺寸转换成字节数 |
|
|
将表示成一个 64位整数的字节尺寸转换为带尺寸单位的人类可读格式 |
|
|
将表示成一个数字值的字节尺寸转换为带尺寸单位的人类可读格式 |
|
|
被指定表使用的磁盘空间,排除索引(但包括 TOAST、空闲空间映射和可见性映射) |
|
|
指定 OID 的表空间使用的磁盘空间 |
|
|
指定名称的表空间使用的磁盘空间 |
二、常用查看空間大小示例
1、查看各數據庫佔用空間大小
SELECT d.datname AS Db_Name,
pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
(CASE
WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END) AS SIZE
FROM pg_catalog.pg_database d
ORDER BY (CASE
WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_database_size(d.datname)
ELSE NULL
END) DESC nulls last
2、查看表及索引佔用空間大小
SELECT table_schema || '.' || table_name AS full_table_name,
pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size_total,
pg_size_pretty(pg_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size_table,
pg_size_pretty(pg_indexes_size('"' || table_schema || '"."' || table_name || '"')) AS size_index
FROM information_schema.tables
ORDER BY pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC