018.PGSQL-pgsql查询库的大小、表的大小

库的大小

1.在postgresql数据库中默认情况下可通过pg_database_size函数加数据库名称的方式来查看数据库的大小
select  pg_database_size('ioc')
select pg_size_pretty(pg_database_size('ioc'))

 

 

表的大小

复制代码
表的记录数
select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' and relnamespace = (select oid from pg_namespace where nspname='public') order by rowCounts desc; 



-- 查出所有表(包含索引)并排序
-- 查出所有表(包含索引)并排序
SELECT table_schema , table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables  where table_schema in ( 'ioc_dm'  ,'ioc_dw','ioc_ods','ioc_standard','ioc_support','ioc_theme')
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC


-- 查出所有表(包含索引)并排序
SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables  where table_schema = 'ioc_dm'  and table_name like '%index%'
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC



--数据库中单个表的大小(不包含索引)
select pg_size_pretty(pg_relation_size('表名'));

--查出所有表(包含索引)并排序
SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC limit 20

--查出表大小按大小排序并分离data与index
SELECT
table_name,
pg_size_pretty(table_size) AS table_size,
pg_size_pretty(indexes_size) AS indexes_size,
pg_size_pretty(total_size) AS total_size
FROM (
SELECT
table_name,
pg_table_size(table_name) AS table_size,
pg_indexes_size(table_name) AS indexes_size,
pg_total_relation_size(table_name) AS total_size
FROM (
SELECT ('"' || table_schema || '"."' || table_name || '"') AS table_name
FROM information_schema.tables
) AS all_tables
ORDER BY total_size DESC
) AS pretty_sizes
复制代码

 元命令查看表大小、索引大小

复制代码
mydb=> \dt
           List of relations
  Schema  |   Name    | Type  | Owner
----------+-----------+-------+--------
 myschema | o_ls_test | table | pguser
(1 row)

mydb=> \dt+ o_ls_test
                      List of relations
  Schema  |   Name    | Type  | Owner  |  Size  | Description
----------+-----------+-------+--------+--------+-------------
 myschema | o_ls_test | table | pguser | 326 MB | 测试表
(1 row)

 
mydb=> \di+ rid_index
                            List of relations
  Schema  |   Name    | Type  | Owner  |   Table   |  Size  | Description
----------+-----------+-------+--------+-----------+--------+-------------
 myschema | rid_index | index | pguser | o_ls_test | 107 MB |
复制代码

 

posted @   star521  阅读(1977)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示