pg_stat_statements
跟踪所有执行的 SQL 语句的计划和执行统计信息
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_stat_statements | 1.11 | STAT | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 6990 | pg_stat_statements | 否 | 是 | 是 | 是 | 否 | 否 | - |
| 相关扩展 | pg_stat_plans pg_profile pg_stat_monitor pg_store_plans auto_explain pg_show_plans powa explain_ui pg_qualstats online_advisor pg_relusage pg_wait_sampling |
|---|---|
| 下游依赖 | pg_stat_kcache powa |
版本
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
| 1.11 | 1.11 | 1.11 | 1.11 | 1.11 |
安装
提示:这是 PostgreSQL 内核自带的 contrib 扩展
SQL
用法
pg_stat_statements 追踪服务器执行的所有 SQL 语句的规划和执行统计信息。
查询统计信息
SQL
关键视图列
| 列名 | 类型 | 描述 |
|---|---|---|
queryid | bigint | 标识规范化查询的哈希值 |
query | text | 代表性查询文本 |
calls | bigint | 执行次数 |
total_exec_time | double precision | 总执行时间(毫秒) |
mean_exec_time | double precision | 平均执行时间(毫秒) |
rows | bigint | 检索/影响的总行数 |
shared_blks_hit | bigint | 共享缓冲区缓存命中数 |
shared_blks_read | bigint | 从磁盘读取的共享块数 |
shared_blk_read_time | double precision | 读取共享块的时间(毫秒) |
wal_records | bigint | 生成的 WAL 记录数 |
wal_bytes | numeric | 生成的 WAL 总量(字节) |
plans | bigint | 规划次数 |
total_plan_time | double precision | 总规划时间(毫秒) |
函数
SQL
配置
| 参数 | 默认值 | 描述 |
|---|---|---|
pg_stat_statements.max | 5000 | 最大追踪语句数(仅在服务器启动时) |
pg_stat_statements.track | top | top、all(嵌套)或 none |
pg_stat_statements.track_utility | on | 追踪实用命令 |
pg_stat_statements.track_planning | off | 追踪规划统计 |
pg_stat_statements.save | on | 跨服务器重启持久化 |
需要 shared_preload_libraries = 'pg_stat_statements' 和 compute_query_id = on。