PostgreSQL Auto_Explain_Extension
To use the advanced
auto_explain extension in PostgreSQL 16, you should first load it into the server. This can be done by adding
auto_explain to either
session_preload_libraries or
shared_preload_libraries in the
postgresql.conf file. This setup allows you to track slow queries as they occur.
The
auto_explain module has several configurable parameters:
auto_explain.log_min_duration: Sets the minimum execution time for a statement to have its plan logged.
auto_explain.log_analyze: Enables the logging of EXPLAIN ANALYZE output.
auto_explain.log_buffers and auto_explain.log_wal: Control the logging of buffer and WAL usage statistics.
auto_explain.log_timing: Toggles the logging of per-node timing information.
auto_explain.log_triggers: Includes trigger execution statistics in logs.
auto_explain.log_verbose: Enables verbose output.
auto_explain.log_settings: Logs information about modified configuration options.
auto_explain.log_format: Sets the output format (text, xml, json, yaml).
auto_explain.log_level: Determines the log level for the query plan.
auto_explain.log_nested_statements: Controls whether nested statements are logged.
auto_explain.sample_rate: Sets the fraction of statements to explain in each session.
For example, to log every query with its execution plan, you can set
auto_explain.log_min_duration to
0 and enable
auto_explain.log_analyze.
Remember, enabling some of these features, especially
auto_explain.log_analyze, can impact performance due to the overhead of collecting detailed statistics.
For detailed information and examples, please refer to the
PostgreSQL 16 documentation on
auto_explain.