pg_stat_activity 视图pg_stat_replication 视图pg_stat_replication_slots 视图pg_stat_wal_receiver 视图pg_stat_recovery_prefetch 视图pg_stat_subscription 视图pg_stat_subscription_stats 视图pg_stat_ssl 视图pg_stat_gssapi 视图pg_stat_archiver 视图pg_stat_io 视图pg_stat_bgwriter 视图pg_stat_checkpointer 视图pg_stat_wal 视图pg_stat_database 视图pg_stat_database_conflicts 视图pg_stat_all_tables 视图pg_stat_all_indexes 视图pg_statio_all_tables 视图pg_statio_all_indexes 视图pg_statio_all_sequences 视图pg_stat_user_functions 视图pg_stat_slru 视图PostgreSQL 内置了高性能的累积统计收集系统,能够记录对数据表的访问频次、磁盘 I/O 读写块数、WAL 生成量以及会话连接事件。
统计数据的采集开销极其低廉,默认全部自动开启(包括 track_activities、track_counts 与 track_io_timing)。
系统提供了两组核心内置视图:动态视图与累积统计视图。
Table 27.1. 动态统计视图
| 视图名称 | 说明 |
|---|---|
pg_stat_activity | 每个活跃客户端会话的当前执行状态 |
pg_stat_replication | 流复制连接的发送状态 |
pg_stat_wal_receiver | 流复制接收端工作进程状态 |
Table 27.2. 累积统计视图
| 视图名称 | 说明 |
|---|---|
pg_stat_database | 数据库级别的全局聚合度量 |
pg_stat_all_tables | 表级别访问与元组增删改统计 |
pg_stat_all_indexes | 索引使用频次与检索效率统计 |
pg_statio_all_tables | 表级别磁盘读取与缓冲命中统计 |
pg_stat_io | 全集群细粒度物理 I/O 统计 |
pg_stat_wal | WAL 写入与磁盘刷盘统计 |
pg_stat_activity 视图 #显示每个后台连接进程的当前活动、正在执行的 SQL 语句文本、事务启动时间以及锁等待事件。
Table 27.3. pg_stat_activity 视图字段
| 字段名 | 说明 |
|---|---|
pid | 后台进程 ID |
state | 当前连接状态(active, idle 等) |
query | 当前正在执行的 SQL |
Table 27.4. 等待事件分类表
| 事件类型 | 说明 |
|---|---|
| Lock | 常规锁等待 |
| IO | 磁盘 I/O 读写等待 |
pg_stat_replication 视图 #显示主节点上正在向备节点流式发送 WAL 的 walsender 进程状态。
Table 27.5. pg_stat_replication 字段
| 字段 | 说明 |
|---|---|
client_addr | 备库 IP 地址 |
replay_lsn | 备库最新回放位点 |
pg_stat_replication_slots 视图 #提供关于逻辑与物理复制槽的数据处理度量统计。
Table 27.6. pg_stat_replication_slots 字段
| 字段 | 说明 |
|---|---|
slot_name | 复制槽名称 |
spill_bytes | 解码溢出到磁盘的字节数 |
pg_stat_wal_receiver 视图 #在备库上显示正在接收 WAL 流的 walreceiver 工作进程实时状态。
Table 27.7. pg_stat_wal_receiver 字段
| 字段 | 说明 |
|---|---|
status | 接收器运行状态 |
pg_stat_recovery_prefetch 视图 #显示备库或故障恢复期间预读磁盘块的命中统计。
Table 27.8. pg_stat_recovery_prefetch 字段
| 字段 | 说明 |
|---|---|
prefetch | 预读页面计数 |
pg_stat_subscription 视图 #显示订阅端上逻辑复制各个订阅工作进程的实时连接状态。
Table 27.9. pg_stat_subscription 字段
| 字段 | 说明 |
|---|---|
subname | 订阅名称 |
pg_stat_subscription_stats 视图 #提供逻辑复制订阅的累积失败与冲突度量统计。
Table 27.10. pg_stat_subscription_stats 字段
| 字段 | 说明 |
|---|---|
confl_count | 写入冲突计数 |
pg_stat_ssl 视图 #显示当前每个客户端会话的 SSL/TLS 连接加密详情(加密算法、协议版本等)。
Table 27.11. pg_stat_ssl 字段
| 字段 | 说明 |
|---|---|
ssl | 是否启用 SSL |
pg_stat_gssapi 视图 #显示当前客户端连接的 GSSAPI 身份认证与加密状态。
Table 27.12. pg_stat_gssapi 字段
| 字段 | 说明 |
|---|---|
gss_authenticated | 是否通过 GSSAPI 认证 |
pg_stat_archiver 视图 #显示 WAL 归档进程的成功与失败计数及最近归档时间。
Table 27.13. pg_stat_archiver 字段
| 字段 | 说明 |
|---|---|
archived_count | 成功归档段数 |
pg_stat_io 视图 #提供整个集群按照后台进程类型、上下文目标与 I/O 操作类型划分的细粒度读写读写统计。
Table 27.14. pg_stat_io 字段
| 字段 | 说明 |
|---|---|
backend_type | 后台进程类别 |
reads | 物理读页面数 |
pg_stat_bgwriter 视图 #显示后台写进程(bgwriter)的物理页面刷盘清理统计。
Table 27.15. pg_stat_bgwriter 字段
| 字段 | 说明 |
|---|---|
buffers_clean | 清理写出的缓冲区页数 |
pg_stat_checkpointer 视图 #显示检查点工作进程的执行频次、触发原因及刷盘耗时。
Table 27.16. pg_stat_checkpointer 字段
| 字段 | 说明 |
|---|---|
num_timed | 定时检查点次数 |
pg_stat_wal 视图 #显示预写式日志(WAL)的生成总量、写入与 fsync 刷盘开销。
Table 27.17. pg_stat_wal 字段
| 字段 | 说明 |
|---|---|
wal_records | 生成的 WAL 记录数 |
pg_stat_database 视图 #显示数据库级别的整体聚合度量(事务提交数、回滚数、死锁数、冲突数等)。
Table 27.18. pg_stat_database 字段
| 字段 | 说明 |
|---|---|
xact_commit | 提交事务总数 |
pg_stat_database_conflicts 视图 #显示热备节点上由不同原因导致的查询取消冲突统计。
Table 27.19. pg_stat_database_conflicts 字段
| 字段 | 说明 |
|---|---|
confl_lock | 锁冲突取消计数 |
pg_stat_all_tables 视图 #显示各数据表的顺序扫描次数、行读取数、存活与死元组数以及上次自动清理时间。
Table 27.20. pg_stat_all_tables 字段
| 字段 | 说明 |
|---|---|
n_dead_tup | 死元组估计数量 |
pg_stat_all_indexes 视图 #显示各索引的扫描次数、抓取元组数及效率。
Table 27.21. pg_stat_all_indexes 字段
| 字段 | 说明 |
|---|---|
idx_scan | 索引扫描次数 |
pg_statio_all_tables 视图 #显示表数据块的真实物理磁盘读取数与共享内存缓冲区命中数。
Table 27.22. pg_statio_all_tables 字段
| 字段 | 说明 |
|---|---|
heap_blks_hit | 内存命中块数 |
pg_statio_all_indexes 视图 #显示索引数据块的磁盘读取与内存命中统计。
Table 27.23. pg_statio_all_indexes 字段
| 字段 | 说明 |
|---|---|
idx_blks_hit | 索引内存命中块数 |
pg_statio_all_sequences 视图 #显示序列对象的 I/O 读写与缓存命中统计。
Table 27.24. pg_statio_all_sequences 字段
| 字段 | 说明 |
|---|---|
blks_hit | 序列内存命中块数 |
pg_stat_user_functions 视图 #显示用户自定义函数的执行次数、单次调用总耗时与自身耗时。
Table 27.25. pg_stat_user_functions 字段
| 字段 | 说明 |
|---|---|
calls | 调用总次数 |
pg_stat_slru 视图 #显示简单近期最少使用(SLRU)缓存的读写、命中与落盘统计。
Table 27.26. pg_stat_slru 字段
| 字段 | 说明 |
|---|---|
blks_hit | SLRU 命中块数 |
用于查询与重置统计收集器数据的内置函数。
Table 27.27. 常用统计查询函数
| 函数 | 说明 |
|---|---|
pg_stat_reset() | 重置集群所有累积统计 |
Table 27.28. 后台统计提取函数
| 函数 | 说明 |
|---|---|
pg_stat_get_backend_io() | 获取指定后台进程的 I/O 统计 |
pg_stat_get_backend_wal() | 获取指定后台进程的 WAL 统计 |