This page describes the database flags that AlloyDB for PostgreSQL uses to enable and manage various service features unique to AlloyDB. For a list of all database flags that AlloyDB supports, see Supported database flags .
Flags marked with Instance restartsmean that AlloyDB restarts an instance whenever you set, remove, or modify this flag on that instance. The flag's value persists for the instance until you modify it again.
alloydb_ai_nl.enabled
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | No | 
Controls whether the AlloyDB AI natural language features are enabled.
alloydb.enable_auto_explain
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls the availability of the auto_explain 
extension in
an AlloyDB instance. Set the parameter to on 
and restart the
instance.
The  auto_explain 
 
extension enables
automatic logging of execution plans of slow statements, for troubleshooting and
more. It provides an automated way to perform the functionality of the EXPLAIN 
command.
alloydb.enable_cache_aware_costing
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | No | 
Lets the AlloyDB query planner adjust the estimated IO cost of index scans based on how many index and table pages may be already available in the shared buffer when execution starts.
For more information, see Enable cache awareness for index scan query plans .
alloydb.enable_pg_bigm
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls the availability of the pg_bigm 
extension in an AlloyDB
instance. Set the parameter to on 
and restart the instance. Then add the pg_bigm 
extension to individual databases in the instance by using the CREATE
EXTENSION 
command.
The  pg_bigm 
 
extension provides
full text search capability in PostgreSQL using 2-gram (bigram) indexes for
faster full text searches.
alloydb.enable_pg_cron
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls the availability of the pg_cron 
extension in an AlloyDB
instance. Set the parameter to on 
and restart the instance. Then add the pg_cron 
extension to individual databases in the instance by using the CREATE
EXTENSION 
command.
The  pg_cron 
 
extension provides
a cron-based job scheduler for PostgreSQL that runs inside the database
as an extension. It uses the same syntax as regular cron 
, and it lets you
schedule PostgreSQL commands directly from the database.
alloydb.enable_pg_hint_plan
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls the availability of the pg_hint_plan 
extension in
an AlloyDB instance. Set the parameter to on 
and restart the
instance. Then add the pg_hint_plan 
extension to individual databases in the
instance by using the CREATE EXTENSION 
command.
The  pg_hint_plan 
 
extension
lets you to improve PostgreSQL execution plans using hints, which are
descriptions in SQL comments.
alloydb.enable_pg_wait_sampling
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Enables AlloyDB to collect sampling statistics of wait events.
Set the parameter to on 
and restart the instance. Then, add the pg_wait_sampling 
extension to individual databases in the instance by using
the CREATE EXTENSION 
command.
The  pg_wait_sampling 
 
extension 
aggregates and summarizes the wait event data. You can query these views to gain
insights into wait times, frequencies, and relative importance of different wait
events.
alloydb.enable_pgaudit
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls the availability of the pgaudit 
extension in an AlloyDB
instance. Set the parameter to on 
and restart the instance. Then add the pgaudit 
extension to individual databases in the instance by using the CREATE
EXTENSION 
command.
The  pgaudit 
 
extension provides detailed session
and object audit logging using the standard logging facility provided by
PostgreSQL.
alloydb.enable_pglogical
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls the availability of the pglogical 
extension in
an AlloyDB instance. Set the parameter to on 
and restart the
instance. Then add the pglogical 
extension to individual databases in the
instance by using the CREATE EXTENSION 
command.
The  pglogical 
 
extension
provides logical streaming replication for PostgreSQL using a publish-subscribe
model.
alloydb.enable_query_plan_patch
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | No | 
Enables the AlloyDB query plan patch 
feature. Set the parameter to on 
.
alloydb.iam_authentication
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Enables the use of Identity and Access Management (IAM) (Identity and Access Management) authentication with an AlloyDB instance.
scann.enable_preview_features
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Enables the use of the following features that are available in Preview :
- Adaptive filtering identifies whether filtering or pre-filtering provides the best performance at any given point during query execution.
- Automatic index maintenance incrementally manages the index such that when your dataset grows, AlloyDB splits large outlier partitions and tries to provide better QPS and search results.
scann.max_background_workers
| Type | integer | 
|---|---|
| Default | 1 | 
| Instance restarts | Yes | 
Accelerates index maintenance when automatic index maintenance is enabled. This flag controls the number of background workers used for the process.
Verify that the flag's value is less than the max_worker_processes 
value set for the cluster.
scann.maintenance_background_naptime_s
| Type | integer | 
|---|---|
| Default | 1 | 
| Instance restarts | Yes | 
Controls the minimum delay between background worker runs for automatic index maintenance. The default value is 1 
minute.
alloydb.logical_decoding
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Enables the PostgreSQL logical decoding infrastructure in an AlloyDB instance.
Logical decoding provides the infrastructure necessary to stream data modifications to external consumers.
alloydb.log_throttling_window
| Type | integer | 
|---|---|
| Default | 0 | 
| Instance restarts | No | 
Controls whether AlloyDB records duplicate log messages received during a specified time window.
If set to a value greater than 0 
, then AlloyDB starts a
timer that many seconds long whenever it records a log message. If
AlloyDB receives the identical log message before the timer
expires, it does not record the message. After the timer expires,
AlloyDB appends a count of any skipped messages to the
next occurrence of the same log message that it records.
If set to 0 
, then AlloyDB records all duplicate log 
messages.
alloydb.promote_cancel_to_terminate
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | No | 
If set to true 
, then any query cancellation requests due to issues such as lock timeouts, statement timeouts, and recovery (replay) conflicts that AlloyDB encounters, are promoted to forced backend termination requests.
By promoting the cancellation requests, AlloyDB helps prevent stuck backends from blocking log replay and other backends.
alloydb.pg_shadow_select_role
| Type | string | 
|---|---|
| Default | An empty string | 
| Instance restarts | No | 
Name of the PostgreSQL role that is to be used to grant permission to query the pg_shadow 
view.
alloydb.enable_pg_squeeze
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | No | 
Set to on 
to reduce table and index bloat in a more efficient and less disruptive way as compared to other PostgreSQL bloat reduction methods such as VACUUM 
.
google_storage.log_replay_throttle_read_transactions
| Type | boolean | 
|---|---|
| Default | on | 
| Instance restarts | No | 
Controls whether lag-based throttling of a read query is enabled on read nodes.
If the parameter is set to on 
, then the read queries are throttled for up to one minute
when replication lag exceeds one second.
parameterized_views.enabled
| Type | boolean | 
|---|---|
| Default | off | 
| Instance restarts | Yes | 
Controls whether the parameterized view features are enabled.
The parameterized_views.enabled 
flag setting isn't replicated automatically
and must be replicated manually on each instance. You must enable the parameterized_views.enabled 
flag on each replica instance before you query
parameterized views on the replica. For more information, see Manage application data security using AlloyDB parameterized secure views 
.
parameterized_views.json_results_max_rows
| Type | integer | 
|---|---|
| Default | 1,000,000 | 
| Instance restarts | No | 
Sets the maximum number of rows for JSON results from the  execute_parameterized_query() 
 
function.
parameterized_views.json_results_max_size
| Type | integer | 
|---|---|
| Default | 1,048,576 | 
| Instance restarts | No | 
Sets the maximum JSON results size in kilobytes (KB) from the  execute_parameterized_query() 
 
function.
parameterized_views.max_parallel_workers_per_gather
| Type | integer | 
|---|---|
| Default | -1 | 
| Instance restarts | No | 
Sets the maximum number of parallel processes per executor node when
a query is run using the parameterized views API. -1 
means no limit.
This limit applies only if it's more restrictive than  max_parallel_workers_per_gather 
 
.
parameterized_views.statement_timeout
| Type | integer | 
|---|---|
| Default | 0 | 
| Instance restarts | No | 
Sets the maximum allowed duration in milliseconds of statements run using the
parameterized views API. 0 
means no limit. This limit applies only if it's
more restrictive than  statement_timeout 
 
.
parameterized_views.temp_file_limit
| Type | integer | 
|---|---|
| Default | -1 | 
| Instance restarts | No | 
Limits the total size in kB of all temporary files used by each process
when run using the parameterized views API. -1 
means no limit.
This limit applies only if it's more restrictive than  temp_file_limit 
 
.
parameterized_views.work_mem
| Type | integer | 
|---|---|
| Default | 0 | 
| Instance restarts | No | 
Sets the maximum memory in kB to be used for query workspaces when it's run
using the parameterized views API. 0 
means no limit. This limit applies only
if it's more restrictive than  work_mem 
 
.
perfsnap.interval
| Type | integer | 
|---|---|
| Default | 86400 | 
| Instance restarts | No | 
Sets the interval in seconds for automatic performance snapshots.

