pg数据库统计表大小和行数

select 
	table_schema,
	table_name,
	pg_size_pretty(size) as tsize,
	rowcount
from (
	SELECT 
		table_schema, 
		table_name, 
		pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')AS size,
		(select reltuples from pg_class  pc where pc.relname = t1.table_name ) as rowcount
	FROM information_schema.tables t1
) t 
order by size desc;

查询所有模式\表名称\字段信息, 排除分区表

SELECT 
    pd.schemaname as 模式名,
    pc.relname as 表名,
	pa.attname AS 列名,
	format_type ( pa.atttypid, pa.atttypmod ) AS 类型,
    (CASE WHEN pa.attlen > 0 THEN pa.attlen ELSE pa.atttypmod - 4 END ) AS 长度,	
	pa.attnotnull AS 可空, 
	(    
    	CASE WHEN ( SELECT COUNT(*) FROM pg_constraint WHERE conrelid = pa.attrelid AND conkey[1]= attnum AND contype = 'p' ) > 0 THEN
        TRUE ELSE FALSE 
        END 
    ) AS 主键,
	col_description ( pa.attrelid, pa.attnum ) AS 描述    
FROM
	pg_class AS pc,
	pg_attribute AS pa,
	pg_tables as pd
WHERE
	pd.tablename  = pc.relname
AND pa.attrelid = pc.oid
AND pa.attnum > 0
and pc.relname  not in 
(
	select c.relname
	from pg_class c
    join pg_inherits i on i.inhrelid = c. oid
    join pg_class d on d.oid = i.inhparent
)

查询所有分群表

	select c.relname
	from pg_class c
    join pg_inherits i on i.inhrelid = c. oid
    join pg_class d on d.oid = i.inhparent
    where d.relname = '分区表';

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三项超标

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值