首页/数据/SQL 速查/pg_stat_statements 找重查询
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

pg_stat_statements 找重查询

按语句模板累计调用次数与执行时间:PG 上做查询负载分析的基础扩展,需要预加载后启用。

SQL 速查数据更新于 2026-10-12

启用与查询

启用与查询
-- postgresql.conf:shared_preload_libraries = 'pg_stat_statements' 后重启
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;

SELECT calls,
       ROUND(total_exec_time::numeric, 1) AS total_ms,
       ROUND(mean_exec_time::numeric, 2)  AS mean_ms,
       rows,
       LEFT(query, 80) AS query
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;

-- 压测前清零统计
SELECT pg_stat_statements_reset();
依赖shared_preload_libraries 需要重启生效
版本差异PG13 起为 total_exec_time / mean_exec_time;更早版本字段名不同
记录方式归一化模板累计:同一模板不同参数合并统计
分析前可先重置统计,让数据对应观察窗口;重置用 pg_stat_statements_reset()。

易错点

  • 只改了配置没重启:shared_preload_libraries 不生效,CREATE EXTENSION 会报找不到库
  • 照搬旧教程字段名:PG13 前叫 total_time / mean_time,查询前先确认版本

数据来源与参考

  • PostgreSQL Documentation · pg_stat_statements
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌