Skip to content

数据库使用情况

表存储空间使用情况

SELECT schemaname                              as table_schema,
       relname                                    table_name,
       pg_size_pretty(pg_relation_size(relid)) as table_size
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_relation_size(relid) desc;

当前数据库表数据行数

SELECT schemaname, relname, n_live_tup total
FROM pg_stat_user_tables
order by total desc;

数据库视图

pg_stat_user_tables

pg_stat_user_tables是一个统计视图,显示当前数据库中每个非系统表的访问统计信息1 2。它包含以下字段:

  • relid:表的OID
  • schemaname:表所在的模式名
  • relname:表的名字
  • seq_scan:顺序扫描的次数
  • seq_tup_read:顺序扫描读取的行数
  • idx_scan:索引扫描的次数
  • idx_tup_fetch:索引扫描获取的行数
  • n_tup_ins:插入的行数
  • n_tup_upd:更新的行数
  • n_tup_del:删除的行数
  • n_tup_hot_upd:热更新的行数(不需要更新索引)
  • n_live_tup:表中存活的行数(不包括已删除或过期的行)
  • n_dead_tup:表中死亡的行数(已删除或过期的行)
  • n_mod_since_analyze:自上次分析后修改的行数
  • last_vacuum:上次执行VACUUM命令的时间
  • last_autovacuum:上次执行自动VACUUM命令的时间
  • last_analyze:上次执行ANALYZE命令的时间
  • last_autoanalyze:上次执行自动ANALYZE命令的时间
  • vacuum_count:执行VACUUM命令的次数
  • autovacuum_count:执行自动VACUUM命令的次数
  • analyze_count:执行ANALYZE命令的次数
  • autoanalyze_count:执行自动ANALYZE命令的次数