开启方式
1、通过配置文件postgresql.conf
shared_preload_libraries = 'auto_explain'
auto_explain.log_min_duration = 0 # 为了方便查看,这里把时间设置为0,所有SQL都会被auto_explain捕获输出.实际使用的时候适当调大。如 100ms auto_explain.log_analyze = true # 以下可选 auto_explain.log_verbose = true auto_explain.log_buffers = true auto_explain.log_nested_statements = true
需要重启数据库,重启时会输出一个LOG
postgres@db5-> LOG: loaded library "$libdir/auto_explain.so"
2、通过LOAD 'auto_explain';
只在当前session生效,不需要重启数据库,需要超级用户权限
普通用户不允许加载auto_explain模块(普通用户只允许加载$libdir/plugins目录下的模块,但是auto_explain即使拷贝到这个目录也不行)
也可以设置local_preload_libraries,session_preload_libraries参数来启用
配置参数介绍及示例
配置参数控制着auto_explain的行为。需要注意的是,默认情况下的行为是什么也不做,所以如果想要得到相关结果,必须至少要设置auto_explain.log_min_duration这个参数。注意,只有数据库超级用户才能设置以下参数。
1)auto_explain.log_min_duration(integer)
这个参数指的是最小语句执行时间,单位是毫秒,设置之后语句计划就会被记录。例如,设置此参数的值为250毫秒,那么运行时间在250