PostgreSQL的视图pg_stat_user_tables

打印 上一主题 下一主题

主题 685|帖子 685|积分 2055

PostgreSQL的视图pg_stat_user_tables

pg_stat_user_tables 是 PostgreSQL 中的一个系统视图,用于显示用户定义的表的统计信息。这些统计信息包罗表的访问环境、修改环境以及很多其他的性能指标。这个视图为数据库管理员提供了丰富的数据,可以帮助他们举行表的监控和性能分析。
pg_stat_user_tables 视图的重要列和其含义

列名类型描述relidOID表的对象标识符。schemanamename表所在的模式。relnamename表的名字。seq_scanbigint序列扫描(全表扫描)的次数。seq_tup_readbigint通过序列扫描读取的行数。idx_scanbigint通过索引扫描读取的次数。idx_tup_fetchbigint通过索引读取的行数。n_tup_insbigint插入的行数。n_tup_updbigint更新的行数。n_tup_delbigint删除的行数。n_tup_hot_updbigint使用 HOT(Heap-Only Tuple)更新的行数,这类更新不须要修改索引。n_live_tupbigint表中当前活泼的(未删除)行数。n_dead_tupbigint表中当前死行的数量,等待VACUUM清理。n_mod_since_analyzebigint自最后一次ANALYZE以来插入、更新或删除的行数。last_vacuumtimestamp最后一次手动执行VACUUM操作的时间。last_autovacuumtimestamp最后一次自动执行VACUUM操作的时间。last_analyzetimestamp最后一次手动执行ANALYZE操作的时间。last_autoanalyzetimestamp最后一次自动执行ANALYZE操作的时间。vacuum_countbigint执行的手动VACUUM操作次数。autovacuum_countbigint执行的自动VACUUM操作次数。analyze_countbigint执行的手动ANALYZE操作次数。autoanalyze_countbigint执行的自动ANALYZE操作次数。 示例查询

显示全部用户表的基本统计信息

  1. SELECT
  2.     schemaname,
  3.     relname,
  4.     seq_scan,
  5.     seq_tup_read,
  6.     idx_scan,
  7.     idx_tup_fetch,
  8.     n_tup_ins,
  9.     n_tup_upd,
  10.     n_tup_del,
  11.     n_live_tup,
  12.     n_dead_tup
  13. FROM
  14.     pg_stat_user_tables;
复制代码
获取特定表的统计信息

  1. SELECT
  2.     *
  3. FROM
  4.     pg_stat_user_tables
  5. WHERE
  6.     schemaname = 'public'
  7.     AND relname = 'your_table_name';
复制代码
获取全部表的索引使用环境

  1. SELECT
  2.     schemaname,
  3.     relname,
  4.     idx_scan,
  5.     idx_tup_fetch
  6. FROM
  7.     pg_stat_user_tables
  8. WHERE
  9.     idx_scan > 0;
复制代码
获取表的更新/插入/删除操作统计信息

  1. SELECT
  2.     schemaname,
  3.     relname,
  4.     n_tup_ins AS inserts,
  5.     n_tup_upd AS updates,
  6.     n_tup_del AS deletes
  7. FROM
  8.     pg_stat_user_tables
  9. ORDER BY
  10.     inserts DESC;
复制代码
检察须要举行 VACUUM 的表(死行数较多)

  1. SELECT
  2.     schemaname,
  3.     relname,
  4.     n_live_tup,
  5.     n_dead_tup
  6. FROM
  7.     pg_stat_user_tables
  8. WHERE
  9.     n_dead_tup > 1000;  -- 此处条件可根据实际需求调整
复制代码
统计信息的维护

通例的 VACUUM 和 ANALYZE 操作可以帮助维护 pg_stat_user_tables中的统计信息:


  • 手动执行 VACUUM:
    1. VACUUM FULL your_table_name;
    复制代码
  • 手动执行 ANALYZE:
    1. ANALYZE your_table_name;
    复制代码
  • 自动执行 VACUUM 和 ANALYZE: PostgreSQL 具有自动执行 VACUUM 和 ANALYZE 的功能,可以通过设置参数调整这些操作的频率和策略。
通过 pg_stat_user_tables 视图,数据库管理员可以详细了解表的使用环境和性能指标,从而更好地举行数据库的性能调优和维护。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表