Postgresql pg

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

Postgresql pg_class查看所有表名relname及记录数reltuples记录数显示0实际有数据解决

问题

当使用Postgresql 查看所有表的表名及记录数reltuples显示0实际select * from tableA查看有数据。

relname 表、索引、视图等的名字
reltuples 记录数表中的存活行数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令如CREATE INDEX所更新。
relkind r = 普通表 i = 索引 S = 序列 t = TOAST表 v = 视图 m = 物化视图 c = 组合类型 f = 外部表 p = 分区表 I = 分区索引

select relname as tableName,reltuples as rowCounts from pg_class where relkind='r' order by tableName,rowCounts desc;

解决

analyse手动刷新下然后再查看 完美解决可多个表同时分隔analyse 同 analyze

analyse tableA,tableB,tableC;

select string_agg(relname,',') from pg_class where relkind='r' and reltuples=0;
analyse tableA,tableB,tableC;

拓展

PostgreSQL支持多种形式的统计信息包括单列的统计信息和多列扩展的统计信息单列的统计信息是指对每个表的每一个属性列都在PG_STATISTIC系统表中产生一个对应的统计信息元组这个元组负责从多个角度描绘这个属性中的数据分布。

  • PG_STATISTIC系统表
    PG_CLASS系统表会保存两个统计信息relpages和reltuples。relpages记录了当前表用了多少个页面reltuples记录了当前表共有多少条元组。PG_STATISTIC系统表保存单列的统计信息如果用户要给某个表生成统计信息则可以使用ANALYZE语句对一个表进行统计分析这样就能给这个表生成统计信息并且保存在PG_STATISTIC系统表中。

  • PG_STATISTIC_EXT系统表
    保存的是多列的统计信息用户需要显式地使用CREATE STATISTICS语句对一个表创建多列统计信息。

参考

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6