pg_stat_statements

用于跟踪SQL语句执行统计信息的Contrib模块

pg_stat_statements 是一个作为contrib模块实现的扩展,用于跟踪SQL语句的执行统计信息。

pg_stat_statementsPostgreSQL 8.4中添加。

更改历史记录

  • PostgreSQL 17
    • 保存点名称现在显示为常量(提交31de7e60
    • 两阶段提交命令的GID现在显示为常量(提交638d42a3
    • DEALLOCATE语句的名称显示为常量bb45156f
    • 在视图pg_stat_statements中添加了列jit_deform_countjit_deform_time(提交5a3423ad
    • CALL参数现在显示为常量(提交11c34b34
    • 在视图pg_stat_statements中添加了列local_blk_read_timelocal_blk_write_time(提交5147ab1d
    • 在视图pg_stat_statements中添加了列stats_sinceminmax_stats_since(提交dc9f8a79
  • PostgreSQL 16
    • 添加了实用程序语句的查询混淆(提交3db72ebc
  • PostgreSQL 15
    • 在视图pg_stat_statements中添加了列temp_blk_read_timetemp_blk_write_time,用于跟踪临时文件块的I/O计时(提交76cbf7ed
    • 添加了以下JIT计数器字段(提交57d6aea0
      • jit_functions
      • jit_generation_time
      • jit_inlining_count
      • jit_inlining_time
      • jit_optimization_count
      • jit_optimization_time
      • jit_emission_count
      • jit_emission_time
  • PostgreSQL 14
  • PostgreSQL 13
    • 配置选项pg_stat_statements.track_utility用于跟踪WAL使用情况统计信息(提交6b466bf5
    • 配置选项pg_stat_statements.track_planning用于跟踪计划统计信息(提交17e03282
    • 添加了对计划统计信息跟踪的支持(提交17e03282
      • 以下pg_stat_statements列已重命名
        • total_timetotal_exec_time
        • min_timemin_exec_time
        • max_timemax_exec_time
        • mean_timemean_exec_time
        • stddev_timestddev_exec_time
      • 添加了以下pg_stat_statements
        • plans
        • total_plan_time
        • min_plan_time
        • max_plan_time
        • mean_plan_time
        • stddev_plan_time
    • 添加了对WAL使用情况统计信息跟踪的支持(提交6b466bf5
      • pg_stat_statements视图中添加了以下其他列
        • wal_records
        • wal_fpi
        • wal_bytes
  • PostgreSQL 12
    • 现在可以为特定的数据库、用户和查询重置统计信息(提交43cbedab
  • PostgreSQL 11
    • queryid扩展到64位,以减少冲突的可能性(提交cff440d3
  • PostgreSQL 10
    • 忽略的常量显示为"$N"而不是"?"(提交a6f22e83
  • PostgreSQL 9.5
    • 添加了最小、最大、平均和标准偏差时间的统计信息(提交717f7095
  • PostgreSQL 9.4
    • 查询文本存储在文件中(提交f0d6f202
    • 可以不带查询文本返回记录(提交f0d6f202
    • 公开了内部查询哈希标识符(提交91484409
    • DEALLOCATE不再跟踪(提交3cd934f6
    • 统计信息文件保存到pg_stat目录而不是global(提交654e8e44
  • PostgreSQL 9.2
    • SQL文本规范化(提交7313cc01
    • 添加了脏缓冲区计数(提交22543674
    • 添加了列blk_read_timeblk_write_time,如果启用了track_io_timing,则将填充这些列(提交5b4f3466
  • PostgreSQL 9.1
  • PostgreSQL 9.0
    • 添加了缓冲区访问计数器(提交8964dbd5
  • PostgreSQL 8.4
    • 添加(提交7466eeac;请注意,一些前面的提交添加了此扩展所需的基础结构)

示例

任意查询的pg_stat_statements记录示例

proddb=# SELECT * FROM pg_stat_statements WHERE queryid='2070117699405581796'\gx
-[ RECORD 1 ]-------+-----------------------------------------------------------------------------------------
userid              | 16384
dbid                | 16389
queryid             | 2070117699405581796
query               | /* getCommentsTotal */                                                                  +
                    |     SELECT COUNT(*) AS total                                                            +
                    |       FROM entry c                                                                      +
                    | INNER JOIN object o                                                                     +
                    |         ON o.object_id = c.entry_reference_id                                           +
                    | INNER JOIN object_version ov                                                            +
                    |         ON (ov.object_id = o.object_id AND ov.object_status_id = $1 AND ov.version = $2)+
                    |      WHERE c.entry_status = $3                                                          +
                    |  AND o.site_id IN (SELECT * FROM f_user_get_site_ids($4))
calls               | 4
total_time          | 7556.941424000001
min_time            | 37.801478
max_time            | 5922.666363
mean_time           | 1889.2353560000001
stddev_time         | 2349.3165152342754
rows                | 4
shared_blks_hit     | 204947
shared_blks_read    | 305706
shared_blks_dirtied | 132062
shared_blks_written | 162
local_blks_hit      | 0
local_blks_read     | 0
local_blks_dirtied  | 0
local_blks_written  | 0
temp_blks_read      | 0
temp_blks_written   | 0
blk_read_time       | 0
blk_write_time      | 0

分类

Contrib模块扩展日志记录监控性能语句

另请参阅

track_io_timing

反馈

提交任何关于"pg_stat_statements"的评论、建议或更正 此处