🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> `pg_stat_all_tables`视图将为当前数据库中的每一个表(包括 TOAST 表)包含一行,该行显示与对该表的访问相关的统计信息。`pg_stat_user_tables`和`pg_stat_sys_tables`视图包含相同的信息,但是被过滤得分别只显示用户和系统表 | 列名 | 示例值 | 说明 | | --- | --- | --- | | relid | 16390 | 表的OID | | schemaname | public | 模式名称 | | relname | pgbench\_accounts | 表名 | | seq\_scan | 0 | 这个表进行全表扫描的次数 | | seq\_tup\_read | 0 | 全表扫描的数据行数,如果这个值很大说明对这个表进行SQL很有可能都是全表扫描。 | | idx\_scan | 29606482 | 索引扫描的次数 | | idx\_tup\_fetch | 29606482 | 通过索引扫描返回的行数 | | n\_tup\_ins | 0 | 插入的数据行数 | | n\_tup\_upd | 14803241 | 更新的数据行数 | | n\_tup\_del | 0 | 删除的数据行数 | | n\_tup\_hot\_upd | 14638544 | hot update的数据行数,这个值与n\_tup\_upd越接近说明update的性能较好,更新数据时不会更新索引。 | | n\_live\_tup | 100012319 | 活着的行数量 | | n\_dead\_tup | 2403437 | 死亡的行数量 | | n\_mod\_since\_analyze | 0 | 这个表最后一次被分析后被修改的行的估计数量 | | last\_vacuum | 无 | 上次手动vacuum的时间 | | last\_autovacuum | 无 | 上次autovacuum的时间 | | last\_analyze | 无 | 上次analyze的时间 | | last\_autoanalyze | 2019/4/9 14:12 | 上次自动analyze的时间 | | vacuum\_count | 0 | vacuum的次数 | | autovacuum\_count | 0 | autovacuum的次数 | | analyze\_count | 0 | analyze的次数 | | autoanalyze\_count | 1 | 自动analyze的次数 | * seq\_scan、seq\_tup\_read的值很高说明该表有大量的全表扫描动作,您需要找到问题SQL进行优化。 * n\_dead\_tup的值很高说明该表有大量的UPDATE和DELETE操作,产生了大量的垃圾数据,您需要对该表进行vacuum动作,同时表明autovacuum参数设置也不够合理需要您进行调整。遇到类似情况您可以手动执行vacuum table操作或调整autovacuum参数触发自动vacuum动作。