Skip to content

Comparison with pg_stat_statements

The pg_stat_monitor extension is developed on the basis of pg_stat_statements as its more advanced replacement.

Thus, pg_stat_monitor inherits the columns available in pg_stat_statements plus provides additional ones.

Note that pg_stat_monitor and pg_stat_statements process statistics data differently. Because of these differences, memory blocks and WAL (Write Ahead Logs) related statistics data are displayed inconsistently when both extensions are used together.

To see all available columns, run the following command from the psql terminal:

\d pg_stat_monitor;

The following table compares the pg_stat_monitor (PGSM) view with that of pg_stat_statements (PGSS).

Note that the column names differ depending on the PostgreSQL version you are running.

PostgreSQL 15 and newer PostgreSQL 13 - 14 PostgreSQL 11 - 12 PGSM PGSS
bucket bucket bucket ✅ ❌
bucket_start_time bucket_start_time bucket_start_time ✅ ❌
userid userid userid ✅ ✅
user username username ✅ ❌
dbid dbid dbid ✅ ✅
datname datname datname ✅ ✅
client_ip client_ip client_ip ✅ ❌
pgsm_query_id pgsm_query_id pgsm_query_id ✅ ❌
queryid queryid queryid ✅ ✅
toplevel toplevel ✅ ✅
top_queryid top_queryid top_queryid ✅ ❌
top_query top_query top_query ✅ ❌
query query query ✅ ✅
planid planid planid ✅ ❌
comments comments comments ✅ ❌
query_plan query_plan query_plan ✅ ❌
application_name application_name application_name ✅ ❌
relations relations relations ✅ ❌
cmd_type cmd_type cmd_type ✅ ❌
cmd_type_text cmd_type_text cmd_type_text ✅ ❌
elevel elevel elevel ✅ ❌
sqlcode sqlcode sqlcode ✅ ❌
message message message ✅ ❌
calls calls calls ✅ ✅
total_exec_time total_exec_time total_time ✅ ✅
min_exec_time min_exec_time min_time ✅ ✅
max_exec_time max_exec_time max_time ✅ ✅
mean_exec_time mean_exec_time mean_time ✅ ✅
stddev_exec_time stddev_exec_time stddev_time ✅ ✅
rows rows rows ✅ ✅
plans plans ✅ ✅
shared_blks_hit shared_blks_hit shared_blks_hit ✅ ✅
shared_blks_read shared_blks_read shared_blks_read ✅ ✅
shared_blks_dirtied shared_blks_dirtied shared_blks_dirtied ✅ ✅
shared_blks_written shared_blks_written shared_blks_written ✅ ✅
local_blks_hit local_blks_hit local_blks_hit ✅ ✅
local_blks_read local_blks_read local_blks_read ✅ ✅
local_blks_dirtied local_blks_dirtied local_blks_dirtied ✅ ✅
local_blks_written local_blks_written local_blks_written ✅ ✅
temp_blks_read temp_blks_read temp_blks_read ✅ ✅
temp_blks_written temp_blks_written temp_blks_written ✅ ✅
blk_read_time blk_read_time blk_read_time ✅ ✅
blk_write_time blk_write_time blk_write_time ✅ ✅
resp_calls resp_calls resp_calls ✅ ❌
cpu_user_time cpu_user_time cpu_user_time ✅ ✅
cpu_sys_time cpu_sys_time cpu_sys_time ✅ ✅
bucket_done bucket_done bucket_done ✅ ❌
wal_records wal_records ✅ ✅
wal_fpi wal_fpi ✅ ✅
wal_bytes wal_bytes ✅ ✅
total_plan_time total_plan_time ✅ ✅
min_plan_time min_plan_time ✅ ✅
max_plan_time max_plan_time ✅ ✅
mean_plan_time mean_plan_time ✅ ✅
stddev_plan_time stddev_plan_time ✅ ✅
temp_blk_read_time ✅ ✅
temp_blk_write_time ✅ ✅
jit_functions ✅ ✅
jit_generation_time ✅ ✅
jit_inlining_count ✅ ✅
jit_inlining_time ✅ ✅
jit_optimization_count ✅ ✅
jit_optimization_time ✅ ✅
jit_emission_count ✅ ✅
jit_emission_time ✅ ✅

To learn more about the features in pg_stat_monitor, please see the User guide.

Additional reading: pg_stat_statements

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.


  1. Available starting from PostgreSQL 14 and above