重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: PG如何实现查看历史SQL语句的执行计划 [打印本页]

作者: 郑全    时间: 2025-7-26 23:41
标题: PG如何实现查看历史SQL语句的执行计划
我们知道ORACLE有ASH可以记录历史SQL语句,那PG呢

PG本身只是记录历史慢SQL,但要看到当时的执行计划,需要增加auto_explain扩展,该扩展默认是自带的,只是需要设置一下。
下面就来描述一下如何实现:

1.设置配置文件

shared_preload_libraries='auto_explain'

--重启生效
pg_ctl restart

2.设置相关参数
alter system set auto_explain.log_analyze=on;
alter system set auto_explain.log_min_duration='5s';
--配置生效
select pg_reload_conf();

3.验证
  select pg_sleep(10);

  这个时候,去日志文件中,可以看到超过5S的SQL语句执行计划

247716884f6b6c5578.png
登录/注册后可看大图