Which cloud providers support auto_explain?

Photo credit: Kenrick Mills

From time to time I need to check whether a managed Postgres provider supports auto_explain, and if so, which auto_explain parameters they support. Since it can be time-consuming to set up and test each of these, I wanted to create a reference for myself, and thought it might also be of interest to others.

I did my testing over the past week, but plan to keep this up to date. If you notice a mistake, or that a provider changes their support, please do let me know.

What is auto_explain?

Firstly, in case you’re not familiar, auto_explain is an extension that ships with PostgreSQL as a contrib module, allowing you to log the execution plans for queries that ran on your database. This is particularly useful for queries that are intermittently slow. We have a guide for configuring auto_explain, in case that’s of interest, and also recorded a podcast episode about it, if you would like a more casual introduction.

Overview

Here is a roundup of the providers I’ve looked into so far, with a top level summary of whether they support auto_explain, and if so how many of its parameters.

Provider auto_explain Parameters
Amazon RDSYes9/13
Google Cloud SQLYes12/13
Azure DatabaseYes12/13
Crunchy BridgeYes9/13
Timescale CloudYes13/13
AivenNo
Digital OceanNo
EDB Big AnimalYes13/13
HerokuYes6/13
NeonNo
ScaleGridOn by default4/13
SupabaseNo
PlanetScale PostgresYes11/13

Any corrections, additions, or updates would be most welcome. Below, I’ve documented more information for each provider, including which parameters they allow to be configured.

Amazon RDS

Good news, auto_explain is supported in Amazon RDS. Most parameters are available to configure, except for the newer ones, as well as log_level.

Parameter Amazon RDS
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsNot configurable
auto_explain.log_walNot configurable
auto_explain.log_levelNot configurable
auto_explain.log_parameter_max_lengthNot configurable

Amazon’s Aurora PostgreSQL also supports auto_explain with the same parameters, plus a proprietary parameter auto_explain.hashes.

Google Cloud SQL

Good news, auto_explain is supported in Google Cloud SQL. All parameters are available to configure, except for the not-super-useful log_parameter_max_length.

Parameter Google Cloud SQL
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsConfigurable
auto_explain.log_walConfigurable
auto_explain.log_levelConfigurable
auto_explain.log_parameter_max_lengthNot configurable

Google’s AlloyDB also supports auto_explain with the same parameters.

Azure Database

Good news, auto_explain is supported in Azure Database. All parameters are available to configure, except for the not-super-useful log_parameter_max_length.

Parameter Azure Database
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsConfigurable
auto_explain.log_walConfigurable
auto_explain.log_levelConfigurable
auto_explain.log_parameter_max_lengthNot configurable

However it seems that auto_explain is not supported on Azure Cosmos DB.

Crunchy Bridge

Good news, auto_explain is supported in Crunchy Bridge. Most parameters are available to configure, except for the newer ones, as well as log_level.

Parameter Crunchy Bridge
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsNot configurable
auto_explain.log_walNot configurable
auto_explain.log_levelNot configurable
auto_explain.log_parameter_max_lengthNot configurable

Timescale Cloud

Great news, auto_explain is supported in Timescale Cloud, and every parameter is available to configure!

Parameter Timescale Cloud
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsConfigurable
auto_explain.log_walConfigurable
auto_explain.log_levelConfigurable
auto_explain.log_parameter_max_lengthConfigurable

Aiven

Unfortunately auto_explain is not supported in Aiven for PostgreSQL, at least without the aiven_extras extension (and even then only on a per session basis).

Digital Ocean

Unfortunately auto_explain is not supported in Digital Ocean.

EDB Big Animal

Great news, auto_explain is supported in Big Animal, and every parameter is available to configure!

Parameter EDB Big Animal
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_settingsConfigurable
auto_explain.log_walConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_levelConfigurable
auto_explain.log_parameter_max_lengthConfigurable

Heroku

Good news, auto_explain is supported in Heroku Postgres. A subset of the parameters are configurable.

Parameter Heroku
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateNot configurable
auto_explain.log_formatNot configurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingNot configurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsNot configurable
auto_explain.log_walNot configurable
auto_explain.log_levelNot configurable
auto_explain.log_parameter_max_lengthNot configurable

Neon

Unfortunately auto_explain is not supported in Neon.

ScaleGrid

Good news, auto_explain is supported in ScaleGrid, and it is even on by default. However, while several parameters are on by default, most are not configurable.

Parameter ScaleGrid (default)
auto_explain.log_min_durationConfigurable (100ms)
auto_explain.sample_rateNot configurable (1.0)
auto_explain.log_formatNot configurable (json)
auto_explain.log_analyzeNot configurable (on)
auto_explain.log_timingNot configurable (on)
auto_explain.log_buffersConfigurable (on)
auto_explain.log_verboseNot configurable (on)
auto_explain.log_triggersNot configurable (off)
auto_explain.log_nested_statementsNot configurable (off)
auto_explain.log_settingsNot configurable (off)
auto_explain.log_walNot configurable (off)
auto_explain.log_levelNot configurable (log)
auto_explain.log_parameter_max_lengthNot configurable


Supabase

Unfortunately auto_explain is not yet supported in Supabase.


PlanetScale Postgres

Good news, auto_explain is now supported in PlanetScale Postgres. Almost all of the parameters are configurable.

Parameter PlanetScale
auto_explain.log_min_durationConfigurable
auto_explain.sample_rateConfigurable
auto_explain.log_formatConfigurable
auto_explain.log_analyzeConfigurable
auto_explain.log_timingConfigurable
auto_explain.log_buffersConfigurable
auto_explain.log_verboseConfigurable
auto_explain.log_triggersConfigurable
auto_explain.log_nested_statementsConfigurable
auto_explain.log_settingsNot configurable
auto_explain.log_walConfigurable
auto_explain.log_levelConfigurable
auto_explain.log_parameter_max_lengthNot configurable


To conclude

Sadly, despite auto_explain being in contrib, a decent number of managed services don’t yet support it. However a whole bunch do, many of which also offer good coverage of parameters.

Hopefully in time support will grow. If you notice a provider that has changed their support, or you use one that we haven’t covered above, it’d be great to hear from you.


Last updated: June 2026