首页/数据/SQL 速查/auto_explain 自动记录慢查询计划
性能与执行计划72 条

auto_explain 自动记录慢查询计划

把超过阈值的语句连同执行计划写进日志:事后分析线上慢查询时不用手动复现。

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

配置

配置
-- postgresql.conf
shared_preload_libraries = 'auto_explain'
auto_explain.log_min_duration = '1s'      -- 记录超过 1 秒的语句
auto_explain.log_analyze = on             -- 附带实际耗时行数
auto_explain.log_buffers = on             -- 附带缓冲区统计
生效方式shared_preload_libraries 需重启;其余参数支持运行时 SET 或 ALTER SYSTEM + reload
log_analyze开启后按 ANALYZE 方式收集实测数据,会有少量额外开销
本地调试会话内 SET auto_explain.log_min_duration = 0 可记录当前会话全部语句

易错点

  • 日志量失控:阈值设得过低或对高频语句记录,日志会迅速膨胀
  • 忘记它需要预加载:只改 log_min_duration 而没有加载库时不会有任何输出

数据来源与参考

  • PostgreSQL Documentation · auto_explain
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌