Настройки PostgreSQL
Для кластера Managed Service for PostgreSQL можно задать настройки, которые относятся к PostgreSQL. Часть настроек задается на уровне кластера, часть — на уровне пользователя.
Метки рядом с названием настройки позволяют определить, с помощью какого интерфейса задается значение этой настройки: консоль управления, CLI, API или Terraform. Метка Все интерфейсы
указывает, что поддерживаются все перечисленные интерфейсы.
В зависимости от выбранного интерфейса, одна и та же настройка будет представлена по-разному, например:
- Backend flush after в консоли управления соответствует:
backend_flush_after
в gRPC API, CLI, Terraform;backendFlushAfter
в REST API;
- Default transaction isolation в настройках уровня пользователя в консоли управления соответствует:
--default-transaction-isolation
в CLI;default_transaction_isolation
в gRPC API;defaultTransactionIsolation
в REST API.
Зависимость настроек от класса хостов и размера хранилища
Значения некоторых настроек PostgreSQL могут быть автоматически скорректированы при изменении класса хостов или размера хранилища:
- Если значения не были заданы или не подходят новому классу/размеру, будут применены настройки по умолчанию для этого класса/размера.
- Если заданные вручную настройки подходят для нового класса/размера, они не будут изменены.
Список настроек, зависящих от класса хостов:
- Autovacuum max workers.
- Autovacuum vacuum cost delay.
- Autovacuum vacuum cost limit.
- Conn limit.
- Max connections.
- Shared buffers.
Список настроек, зависящих от размера хранилища:
Настройки на уровне кластера
Доступны следующие настройки:
-
Archive timeout
Все интерфейсы
Периодичность (в миллисекундах) архивации лога транзакций PostgreSQL.
Минимальное значение —
10000
, максимальное значение —86400000
, по умолчанию —30000
.Подробнее см. в документации PostgreSQL
. -
Array nulls
Все интерфейсы
Управляет распознаванием элементов
NULL
при вставке массива. Если настройка включена, то такие элементы распознаются как пустое полеNULL
. В противном случае — как строка с текстом «NULL
».По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Auto explain log analyze
Консоль управления
API
Terraform
Определяет, будет ли статистика плана запроса выводиться в лог PostgreSQL автоматически, без использования команды
EXPLAIN
. Это позволяет отслеживать неоптимизированные запросы. Настройка использует модульauto_explain
, для его работы необходимо подключить библиотекуauto_explain
.По умолчанию настройка выключена (статистика плана запроса не выводится в лог).
Подробнее см. в документации PostgreSQL
. -
Auto explain log buffers
Консоль управления
API
Terraform
Определяет, будет ли статистика использования буферного кеша выводиться в лог PostgreSQL через модуль
auto_explain
. Работает аналогично параметруBUFFERS
в командеEXPLAIN
. Применяется только при включенной настройке Auto explain log analyze.По умолчанию настройка выключена (статистика использования буферного кеша не выводится в лог).
Подробнее см. в документации PostgreSQL
. -
Auto explain log min duration
Консоль управления
API
Terraform
Минимальное время выполнения запроса (в миллисекундах), при котором включается логирование в модуле
auto_explain
.Минимальное значение —
-1
(логирование отключено), максимальное значение —2147483647
, по умолчанию —-1
. При значении0
логируются планы всех запросов независимо от времени их выполнения.Подробнее см. в документации PostgreSQL
. -
Auto explain log nested statements
Консоль управления
API
Terraform
Определяет, будет ли в модуле
auto_explain
логироваться выполнение вложенных запросов внутри SQL-функций. Применяется только при включенной настройке Auto explain log analyze.По умолчанию настройка выключена (логируются только планы верхнеуровневых запросов).
Подробнее см. в документации PostgreSQL
. -
Auto explain log timing
Консоль управления
API
Terraform
Определяет, будет ли в модуле
auto_explain
логироваться время выполнения отдельных этапов плана запроса. Работает аналогично параметруTIMING
в командеEXPLAIN
. Применяется только при включенной настройке Auto explain log analyze.По умолчанию настройка выключена (время выполнения отдельных этапов не логируется).
Подробнее см. в документации PostgreSQL
. -
Auto explain log triggers
Консоль управления
API
Terraform
Определяет, будет ли в модуле
auto_explain
выводиться статистика выполнения триггеров. Применяется только при включенной настройке Auto explain log analyze.По умолчанию настройка выключена (статистика выполнения триггеров не выводится).
Подробнее см. в документации PostgreSQL
. -
Auto explain log verbose
Консоль управления
API
Terraform
Определяет, будут ли в модуле
auto_explain
детализированы логи. Работает аналогично параметруVERBOSE
в командеEXPLAIN
. Применяется только при включенной настройке Auto explain log analyze.По умолчанию настройка выключена (логи не детализируются).
Подробнее см. в документации PostgreSQL
. -
Auto explain sample rate
Консоль управления
API
Terraform
Доля запросов, которые логируются с помощью модуля
auto_explain
в каждой сессии. Применяется только при включенной настройке Auto explain log analyze.Минимальное значение —
0.0
(никакие запросы не логируются), максимальное значение —1.0
(логируются все запросы), по умолчанию —1.0
.Подробнее см. в документации PostgreSQL
. -
Autovacuum analyze scale factor
Все интерфейсы
Доля измененных или удаленных записей в таблице, при которой процесс автоочистки
выполнит командуANALYZE
для сбора статистики.Минимальное значение —
0.0
, максимальное значение —1.0
, по умолчанию —0.0001
.Подробнее см. в документации PostgreSQL
. -
Autovacuum max workers
Консоль управления
API
Terraform
CLI
Максимальное количество параллельно запущенных процессов автоочистки
. Автоочистка периодически запускается для каждой БД, определяет, какие из записей в таблицах помечены на удаление, и удаляет их.Минимальное значение —
1
, максимальное значение —32
. Значение по умолчанию зависит от выбранного класса хостов и равно количеству vCPU на одном хосте, но не может быть меньше3
.Подробнее см. в документации PostgreSQL
. -
Autovacuum naptime
Консоль управления
API
Terraform
Задает минимальный интервал (в миллисекундах) между запусками процесса автоочистки
. Чтобы не нагружать БД при частых изменениях данных, увеличьте значение настройки.Минимальное значение —
1000
, максимальное значение —86400000
, по умолчанию —15000
.Подробнее см. в документации PostgreSQL
. -
Autovacuum vacuum cost delay
Все интерфейсы
Время (в миллисекундах), в течение которого будет простаивать процесс автоочистки
при превышении предела стоимости.Минимальное значение —
-1
(настройка не применяется), максимальное значение —100
. Значение по умолчанию зависит от выбранного класса хостов:-
Если количество vCPU для выбранного класса хостов больше или равно 10, используется значение
5
. -
В остальных случаях значение по умолчанию рассчитывается по формуле:
55 - 5 × <количество_vCPU_на_одном_хосте>
Подробнее см. в документации PostgreSQL
. -
-
Autovacuum vacuum cost limit
Все интерфейсы
Предел стоимости, при превышении которого процесс автоочистки
будет остановлен на время, заданное параметром Autovacuum vacuum cost delay.Минимальное значение —
-1
(настройка не применяется), максимальное значение —10000
. Значение по умолчанию зависит от выбранного класса хостов и задается формулой:150 × <количество_vCPU_на_одном_хосте> + 400
Пример:
Класс хоста vCPU Значение по умолчанию s2.small 4 150 × 4 + 400 = 1000
m2.medium 6 150 × 6 + 400 = 1300
Подробнее см. в документации PostgreSQL
. -
Autovacuum vacuum insert scale factor
Все интерфейсы
Доля от размера таблицы, добавляемая к величине настройки Autovacuum vacuum insert threshold, по достижении которой запустится процесс автоочистки
.Минимальное значение —
0.0
, максимальное значение —1.0
, по умолчанию —0.2
.Подробнее см. в документации PostgreSQL
. -
Autovacuum vacuum insert threshold
Все интерфейсы
Задает количество строк, вставка которых в любую таблицу запустит процесс автоочистки
.Минимальное значение —
-1
(настройка не применяется), максимальное значение —2147483647
, по умолчанию —1000
.Подробнее см. в документации PostgreSQL
. -
Autovacuum vacuum scale factor
Все интерфейсы
Доля измененных или удаленных записей в таблице, при которой процесс автоочистки
запустит сборку и удаление мусора командойVACUUM
.Минимальное значение —
0.0
(настройка не применяется), максимальное значение —1.0
, по умолчанию —0.00001
.Подробнее см. в документации PostgreSQL
. -
Autovacuum work mem
Консоль управления
API
Terraform
CLI
Объем памяти (в байтах), выделяемый каждому процессу автоочистки
.Минимальное значение —
-1
(настройка не применяется), максимальное значение —2147483647
, по умолчанию —-1
.Подробнее см. в документации PostgreSQL
. -
Backend flush after
Все интерфейсы
Максимальный объем записываемых служебным процессом данных (в килобайтах) в страничном кеше ядра ОС. При его превышении СУБД дает команду ОС записать данные на диск. Чем больше параметр, тем меньше вероятность замедления при записи данных на диск (в том числе, после завершения контрольной точки) командой
fsync
.Минимальное значение —
0
(настройка не применяется), максимальное значение —2048
, по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Backslash quote
Все интерфейсы
Управляет представлением кавычки в SQL-строке.
Допустимые значения:
backslash_quote
(BACKSLASH_QUOTE
для Terraform, API и CLI) — кавычка может быть представлена как\'
(эквивалентно значениюon
);on
(BACKSLASH_QUOTE_ON
для Terraform, API и CLI) — кавычка может быть представлена как\'
;off
(BACKSLASH_QUOTE_OFF
для Terraform, API и CLI) — кавычка задается только обычным для SQL способом''
;safe_encoding
(BACKSLASH_QUOTE_SAFE_ENCODING
для Terraform, API и CLI) — представление кавычки как\'
допускается только для клиентских кодировок, не использующих\
в многобайтных символах.
Значение по умолчанию —
safe_encoding
.Подробнее см. в документации PostgreSQL
. -
Bgwriter delay
Все интерфейсы
Задержка (в миллисекундах) между запусками процесса фоновой записи. Этот процесс записывает новые или измененные элементы буферного кеша PostgreSQL на диск. Задержка позволяет избежать многократной перезаписи страницы при каждом изменении и снизить нагрузку на диск.
Минимальное значение —
10
, максимальное значение —10000
, по умолчанию —200
.Подробнее см. в документации PostgreSQL
. -
Bgwriter flush after
Консоль управления
API
Terraform
Объем обрабатываемых процессом фоновой записи данных (в килобайтах), при превышении которого СУБД дает команду ОС сохранить эти данные на диск. Параметр ограничивает объем
грязных
данных в страничном кеше ядра ОС и уменьшает вероятность замедления при выполнении командыfsync
в конце контрольной точки или когда ОС в фоне сбрасывает данные на диск.Минимальное значение —
0
, максимальное значение —2048
, по умолчанию —512
.Подробнее см. в документации PostgreSQL
. -
Bgwriter lru maxpages
Все интерфейсы
Максимальное число элементов буферного кеша PostgreSQL, которое процесс фоновой записи может сохранить за цикл активности. При нулевом значении фоновая запись отключается.
Минимальное значение —
0
, максимальное значение —1073741823
, по умолчанию —100
.Подробнее см. в документации PostgreSQL
. -
Bgwriter lru multiplier
Все интерфейсы
Множитель, на который при следующем запуске будет увеличено среднее число буферов, сохраняемых процессом фоновой записи.
Минимальное значение —
0
, максимальное значение —10
, по умолчанию —2
.Подробнее см. в документации PostgreSQL
. -
Bytea output
Все интерфейсы
Задает формат вывода бинарных строковых значений
(типbytea
):hex
(BYTEA_OUTPUT_HEX
для Terraform, API и CLI) — каждый байт задается двумя шестнадцатеричными символами, например 'SELECT '\xDEADBEEF';
';escape
(BYTEA_OUTPUT_ESCAPE
для Terraform, API и CLI) — стандартный формат PostgreSQL, только символы ASCII.
Значение по умолчанию —
hex
.Подробнее см. в документации PostgreSQL
. -
Checkpoint completion target
Все интерфейсы
Доля интервала между контрольными точками, определяющая максимальную продолжительность снятия контрольной точки. Например, при значении
0.5
снятие контрольной точки будет завершено примерно за половину времени до следующей контрольной точки.Минимальное значение —
0.0
, максимальное значение —1.0
, по умолчанию —0.5
.Подробнее см. в документации PostgreSQL
. -
Checkpoint flush after
Консоль управления
API
Terraform
Объем области памяти (в килобайтах), занятый страницами для записи в контрольной точке. Те страницы, которые выходят за границы области, будут сброшены на диск и удалены из страничного кеша ОС.
Минимальное значение —
0
, максимальное значение —2048
, по умолчанию —256
.Подробнее см. в документации PostgreSQL
. -
Checkpoint timeout
Все интерфейсы
Интервал между контрольными точками (в миллисекундах).
Минимальное значение —
30000
, максимальное значение —86400000
, по умолчанию —300000
.Подробнее см. в документации PostgreSQL
. -
Client connection check interval
Консоль управления
API
CLI
Период времени между проверками клиентских соединений при выполнении запросов (в миллисекундах). Проверка опрашивает сокет сервера для подключения и прерывает длительные запросы, если обнаруживает, что соединение закрыто. Функциональность поддерживается PostgreSQL начиная с версии 14.
Минимальное значение —
0
(проверка не выполняется), максимальное значение —2147483647
. По умолчанию установлено минимальное значение.Подробнее см. в документации PostgreSQL
. -
Client min messages
Все интерфейсы
Уровень сообщений логирования, отправляемых клиентским приложениям. Возможные значения (по возрастанию важности):
debug5
,debug4
,debug3
,debug2
,debug1
,info
,notice
,warning
,error
,log
,fatal
иpanic
(для Terraform, API, CLILOG_LEVEL_DEBUG5
,LOG_LEVEL_DEBUG4
,LOG_LEVEL_DEBUG3
,LOG_LEVEL_DEBUG2
,LOG_LEVEL_DEBUG1
,LOG_LEVEL_INFO
,LOG_LEVEL_NOTICE
,LOG_LEVEL_WARNING
,LOG_LEVEL_ERROR
,LOG_LEVEL_LOG
,LOG_LEVEL_FATAL
иLOG_LEVEL_PANIC
).Значение по умолчанию —
NOTICE
.Подробнее см. в документации PostgreSQL
. -
Constraint exclusion
Все интерфейсы
Разрешает планировщику использовать ограничения таблиц для оптимизации запросов.
Допустимые значения:
on
(CONSTRAINT_EXCLUSION_ON
для Terraform, API и CLI) — задействовать ограничения для всех таблиц;off
(CONSTRAINT_EXCLUSION_OFF
для Terraform, API и CLI) — не задействовать ограничения;partition
(CONSTRAINT_EXCLUSION_PARTITION
для Terraform, API и CLI) — задействовать ограничения только для дочерних таблиц и подзапросовUNION ALL
.
Значение по умолчанию —
partition
.Подробнее см. в документации PostgreSQL
. -
Cursor tuple fraction
Все интерфейсы
Задает для планировщика оценку доли строк, которые будут получены через курсор.
Минимальное значение —
0.0
, максимальное значение —1.0
, по умолчанию —0.1
.Подробнее см. в документации PostgreSQL
. -
Deadlock timeout
Консоль управления
API
Terraform
CLI
Время ожидания (в миллисекундах), по истечении которого будет выполняться проверка состояния перекрестной блокировки.
Минимальное значение —
1
, максимальное значение —2147483647
, по умолчанию —1000
.Подробнее см. в документации PostgreSQL
. -
Default statistics target
Все интерфейсы
Максимальное число записей статистики по каждому столбцу таблиц БД. С помощью статистики планировщик оценивает число строк, возвращаемых запросами, чтобы выбрать наиболее подходящий план запроса.
Чтобы повысить точность оценок планировщика, увеличьте значение настройки.
Минимальное значение —
1
, максимальное значение —10000
, по умолчанию —1000
.Подробнее см. в документации PostgreSQL
. -
Default transaction isolation
Все интерфейсы
Определяет уровень изоляции по умолчанию для новых транзакций SQL.
Допустимые значения:
read committed
(TRANSACTION_ISOLATION_READ_COMMITTED
для Terraform, API и CLI) — запрос видит только те строки, которые были зафиксированы до начала его выполнения.read uncommitted
(TRANSACTION_ISOLATION_READ_UNCOMMITTED
для Terraform, API и CLI) — поведение этого уровня изоляции в PostgreSQL идентичноread committed
.repeatable read
(TRANSACTION_ISOLATION_REPEATABLE_READ
для Terraform, API и CLI) — все запросы в текущей транзакции видят только те строки, которые были зафиксированы перед первым выполненным в этой транзакции запросом на выборку или изменение данных.serializable
(TRANSACTION_ISOLATION_SERIALIZABLE
для Terraform, API и CLI) — обеспечивает самый строгий уровень изоляции из всех приведенных выше. Поведение этого уровня изоляции в PostgreSQL аналогичноrepeatable read
. Однако, если наложение операций чтения и записи параллельных сериализуемых транзакций несовместимо с их последовательным выполнением, произойдет откат одной из транзакций с ошибкойсбой сериализации
.
Значение по умолчанию —
read committed
.Подробнее об уровнях изоляции см. в документации PostgreSQL
.Настройка действует на уровне кластера Managed Service for PostgreSQL, но ее можно переопределить на уровне пользователя.
-
Default transaction read only
Все интерфейсы
Устанавливает режим
только чтение
в каждой новой транзакции для любых таблиц, кроме временных.По умолчанию настройка выключена (допускается чтение и запись).
Подробнее см. в документации PostgreSQL
. -
Default with oids
Все интерфейсы
Добавляет столбец
OID
с уникальным идентификатором строки. Настройка действует, если таблица создается:- либо без указания
WITH OIDS
иWITHOUT OIDS
; - либо с помощью команды
SELECT INTO
.
Практика использования
OID
в пользовательских таблицах считается устаревшей, используйте настройку только для совместимости со старыми приложениями.По умолчанию настройка выключена (столбец
OID
не добавляется).Подробнее см. в документации PostgreSQL
. - либо без указания
-
Effective cache size
Все интерфейсы
Оценка эффективного размера дискового кеша (в байтах), доступного для одного запроса. Чем выше значение настройки, тем вероятнее планировщик применит сканирование по индексу. Более низкие значения повышают вероятность применения последовательного сканирования.
Минимальное значение —
0
, максимальное значение —549755813888
(512 ГБ), по умолчанию —107374182400
(100 ГБ).Подробнее см. в документации PostgreSQL
. -
Effective io concurrency
Все интерфейсы
Максимальное число параллельных операций дискового ввода-вывода в отдельной сессии работы с БД. Чем больше это число, тем больше операций PostgreSQL будет пытаться выполнить параллельно в отдельной сессии.
Минимальное значение —
0
, максимальное значение —1000
, по умолчанию —1
.Подробнее см. в документации PostgreSQL
. -
Enable async append
Консоль управления
API
CLI
Разрешает планировщику учитывать асинхронное выполнение плана запроса на разных хостах при добавлении данных из внешних источников. Функциональность поддерживается PostgreSQL начиная с версии 14.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable bitmapscan
Все интерфейсы
Разрешает планировщику сканировать битовую карту индекса при просмотре таблиц, даже если это явно не указано в запросе. Этот способ доступа похож на обычный индексный доступ, но происходит в два этапа:
-
Сканируется индекс (Bitmap Index Scan) и строится битовая карта, в которой отмечаются те строки, которые должны быть прочитаны в запросе.
-
Выполняется сканирование таблицы (Bitmap Heap Scan). При этом:
- страницы читаются последовательно (увеличивается шанс воспользоваться кешем ОС);
- каждая страница просматривается только один раз.
Настройка эффективна при повторных запросах к таблицам.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
-
Enable gathermerge
Консоль управления
API
CLI
Разрешает планировщику использовать узел Gather Merge для слияния с сохранением порядка результатов выполнения запросов в параллельном плане запроса. Функциональность поддерживается PostgreSQL начиная с версии 14.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable hashagg
Все интерфейсы
Разрешает планировщику строить хеш-таблицу из набора результатов, даже если это явно не указано в запросе. Настройка эффективна при частых запросах без сортировок к таблицам с большим объемом данных.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable hashjoin
Все интерфейсы
Разрешает планировщику строить объединения (
JOIN
) таблиц по хеш-значениям строк, даже если это явно не указано в запросе. Настройка эффективна при работе с большими объемами данных или когда таблицы не отсортированы по столбцам, по которым производится объединение.По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable incremental sort
Все интерфейсы
Разрешает планировщику использование инкрементной сортировки. Такой способ сортировки позволяет уменьшить время выполнения запроса и объем требуемой оперативной памяти, если необходимо упорядочить строки по нескольким столбцам, и по одному или нескольким из них сортировка уже выполнена. Функциональность поддерживается PostgreSQL начиная с версии 13.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable indexonlyscan
Все интерфейсы
Разрешает планировщику использовать сканирование индекса таблиц без обращения к данным, даже если это явно не указано в запросе.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable indexscan
Все интерфейсы
Разрешает планировщику использовать сканирование индекса таблиц, даже если это явно не указано в запросе.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable material
Все интерфейсы
Разрешает планировщику использовать запросы материализации.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable mergejoin
Все интерфейсы
Разрешает планировщику использовать слияние операций
JOIN
при объединении таблиц.По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable nestloop
Все интерфейсы
Разрешает планировщику использовать объединения (
JOIN
) с вложенными циклами. При выключенной настройке планировщик будет использовать другие методы.По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable parallel append
Все интерфейсы
Разрешает планировщику использовать распараллеливание при добавлении данных.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable parallel hash
Все интерфейсы
Разрешает планировщику строить объединения по хешу строк с распараллеливанием хеширования. Настройка действует при включенной настройке Enable hashjoin.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable partition pruning
Все интерфейсы
Разрешает планировщику удалять ненужные партиции из планов запроса к партиционированным таблицам.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable partitionwise aggregate
Все интерфейсы
Разрешает планировщику группировать или агрегировать данные с учетом партиций, чтобы запросы выполнялись для каждой партиции отдельно.
По умолчанию настройка выключена (планировщик не учитывает партиционирование).
Подробнее см. в документации PostgreSQL
. -
Enable partitionwise join
Все интерфейсы
Разрешает планировщику использовать партиционирование таблиц при планировании запросов. Настройка позволяет выполнять запросы объединения партиционированных таблиц через объединение соответствующих партиций.
По умолчанию настройка выключена (планировщик не учитывает партиционирование).
Подробнее см. в документации PostgreSQL
. -
Enable seqscan
Все интерфейсы
Разрешает планировщику использовать планы последовательного сканирования таблиц.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable sort
Все интерфейсы
Разрешает планировщику использовать шаги с явной сортировкой.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Enable tidscan
Все интерфейсы
Разрешает планировщику использовать планы сканирования TID (tuple identifier) для ускорения выполнения запросов.
По умолчанию настройка включена (планировщик выполняет сканирование TID).
Подробнее см. в документации PostgreSQL
. -
Escape string warning
Все интерфейсы
Включает предупреждение о наличии в запросе символа
\
в обычной строковой константе (с синтаксисом'...'
). Настройка работает только при отключенном параметре Standard conforming strings.По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Exit on error
Все интерфейсы
Включает прерывание сессии в случае любой ошибки в запросе.
По умолчанию настройка выключена.
Подробнее см. в документации PostgreSQL
. -
Force parallel mode
Все интерфейсы
Позволяет распараллеливать запрос для тестирования:
off
(FORCE_PARALLEL_MODE_OFF
для Terraform, API и CLI) — использовать параллельный режим, только когда ожидается увеличение производительности.on
(FORCE_PARALLEL_MODE_ON
для Terraform, API и CLI) — принудительно распараллеливать все запросы, для которых это безопасно.regress
(FORCE_PARALLEL_MODE_REGRESS
для Terraform, API и CLI) — эквивалентенon
, но стандартный вывод такой же, как при выполнении в режимеoff
.
Значение по умолчанию —
off
.Подробнее см. в документации PostgreSQL
. -
From collapse limit
Все интерфейсы
Пока количество элементов в списке
FROM
не превышает значение настройки, планировщик будет объединять вложенные запросы с внешним запросом. При уменьшении значения сокращается время планирования, но план запроса может стать менее эффективным.Минимальное значение —
1
, максимальное значение —2147483647
, по умолчанию —8
.Подробнее см. в документации PostgreSQL
. -
Geqo
Консоль управления
API
Включает генетическую оптимизацию запросов (GEQO
).Значение по умолчанию —
false
(генетическая оптимизация выключена).Подробнее см. в документации PostgreSQL
. -
Geqo effort
Консоль управления
API
Задает соотношение между временем на планирование запроса и качеством плана запроса в алгоритме GEQO
.Чем выше значение, тем дольше происходит планирование запроса, но в то же время повышается вероятность того, что будет выбран эффективный план запроса. Настройка не влияет на работу алгоритма напрямую, а используется для расчета значений по умолчанию для других настроек.
Минимальное значение —
1
, максимальное значение —10
, значение по умолчанию —5
.Подробнее см. в документации PostgreSQL
. -
Geqo generations
Консоль управления
API
Задает количество итераций алгоритма GEQO
.Полезные значения находятся в диапазоне от
100
до1000
.Если значение настройки равно
0
(по умолчанию), то количество итераций алгоритма выбирается на основании настройки Geqo pool size.Подробнее см. в документации PostgreSQL
. -
Geqo pool size
Консоль управления
API
Задает количество особей в генетической популяции в алгоритме GEQO
.Не может равняться
1
. Полезные значения находятся в диапазоне от100
до1000
.Если значение настройки равно
0
(по умолчанию), то количество особей выбирается в зависимости от настройки Geqo effort и количества таблиц в запросе.Подробнее см. в документации PostgreSQL
. -
Geqo seed
Консоль управления
API
Задает начальное значение для генератора случайных чисел, используемого алгоритмом GEQO
при выборе путей в пространстве поиска порядка соединений.Изменение настройки изменяет набор исследуемых путей соединений и может как улучшить, так и ухудшить эффективность найденного пути.
Минимальное значение —
0
, максимальное значение —1
, значение по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Geqo selection bias
Консоль управления
API
Задает избирательное давление отбора внутри популяции, используемое в алгоритме GEQO
.Минимальное значение —
1.50
, максимальное значение —2.00
, значение по умолчанию —2.00
.Подробнее см. в документации PostgreSQL
. -
Geqo threshold
Консоль управления
API
Алгоритм GEQO
будет использоваться для планирования только таких запросов, в которых количество таблиц в предложенииFROM
больше или равно значению данной настройки.Для выполнения небольших запросов обычно лучше использовать стандартный планировщик, работающий методом полного перебора. Но для запросов с большим количеством таблиц метод полного перебора может занять больше времени, чем использование не самого оптимального плана.
Минимальное значение —
2
, максимальное значение —2147483647
, значение по умолчанию —12
.Подробнее см. в документации PostgreSQL
. -
Gin pending list limit
Все интерфейсы
Максимальный размер (в байтах) очереди записей индекса GIN
. Очередь используется, когда включен режимfastupdate
. Если размер очереди превышает заданный предел, записи из нее массово переносятся в основную структуру данных индекса GIN, а очередь очищается.Минимальное значение —
64
, максимальное значение —2147483647
(2 ГБ), по умолчанию —4194304
.Подробнее см. в документации PostgreSQL
. -
Hash mem multiplier
Консоль управления
API
Terraform
Определяет максимальный объем памяти, доступный для операций с хеш-таблицами. Объем вычисляется умножением значения настройки на значение Work mem.
Минимальное значение —
0.0
, максимальное значение —1000.0
, по умолчанию —1.0
.Подробнее см. в документации PostgreSQL
. -
Idle in transaction session timeout
Все интерфейсы
Время простоя открытой транзакции (в миллисекундах), при превышении которого будет завершена сессия с этой транзакцией.
Минимальное значение —
0
, максимальное значение —2147483647
, по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Jit
Консоль управления
API
Terraform
Включает JIT-компиляцию запросов
(just-in-time compilation) для PostgreSQL. Если настройка включена, то SQL-запросы компилируются в машинный код прямо во время выполнения. Это ускорит выполнение сложных запросов, которые требовательны к ресурсам CPU.По умолчанию настройка выключена.
Подробнее см. в документации PostgreSQL
. -
Join collapse limit
Все интерфейсы
Пока количество элементов в списке
FROM
не превышает значение настройки, планировщик будет переносить в список явные инструкцииJOIN
(за исключениемFULL JOIN
). При уменьшении значения сокращается время планирования, но план запроса может стать менее эффективным.Минимальное значение —
1
, максимальное значение —2147483647
, по умолчанию —8
.Подробнее см. в документации PostgreSQL
. -
Lo compat privileges
Консоль управления
API
CLI
Terraform
Отключает проверку прав доступа для больших объектов. До версии 9.0 права доступа не действовали на большие объекты, и они были доступны для чтения и записи всем пользователям. Включите настройку, если требуется совместимость с версиями PostgreSQL ниже 9.0.
По умолчанию настройка выключена (проверки прав доступа включены).
Подробнее см. в документации PostgreSQL
. -
Lock timeout
Все интерфейсы
Определяет, сколько ждать освобождения блокировки (в миллисекундах). Заблокированными могут быть: таблица, индекс, строка или другие объекты базы данных. Если время ожидания для какой-либо операции истекло, то она прерывается.
Минимальное значение —
0
(контроль длительности отключен, ожидать получения блокировки можно сколь угодно долго), максимальное значение —2147483647
, по умолчанию —1000
.Подробнее см. в документации PostgreSQL
.Настройка действует на уровне кластера Managed Service for PostgreSQL, но ее можно переопределить на уровне пользователя.
-
Log checkpoints
Все интерфейсы
Включает логирование выполнения контрольных точек и точек перезапуска сервера.
По умолчанию настройка выключена (логирование не ведется).
Подробнее см. в документации PostgreSQL
. -
Log connections
Консоль управления
API
CLI
Terraform
Включает логирование всех попыток подключения к серверу PostgreSQL, в том числе тех, для которых была успешно завершена аутентификация клиентов.
По умолчанию настройка выключена (логирование не ведется).
Подробнее см. в документации PostgreSQL
. -
Log disconnections
Консоль управления
API
CLI
Terraform
Включает логирование завершения сессий.
По умолчанию настройка выключена (логирование не ведется).
Подробнее см. в документации PostgreSQL
. -
Log duration
Консоль управления
API
CLI
Terraform
Включает логирование длительности каждой завершенной команды.
По умолчанию настройка выключена (логирование не выполняется).
Подробнее см. в документации PostgreSQL
. -
Log error verbosity
Консоль управления
API
CLI
Terraform
Задает уровень детализации информации в логе PostgreSQL для каждого сообщения. Уровни детализации лога в порядке увеличения информативности:
terse
(LOG_ERROR_VERBOSITY_TERSE
для Terraform, CLI и API). Из сообщения об ошибке исключаются поляDETAIL
,HINT
,QUERY
иCONTEXT
.default
(LOG_ERROR_VERBOSITY_DEFAULT
для Terraform, CLI и API). По умолчанию.verbose
(LOG_ERROR_VERBOSITY_VERBOSE
для Terraform, CLI и API). В сообщение об ошибке включается код ошибкиSQLSTATE
, а также имя файла с исходным кодом, имя функции и номер строки, сгенерировавшей ошибку.
Подробнее см. в документации PostgreSQL
. -
Log lock waits
Консоль управления
API
CLI
Terraform
Управляет логированием продолжительных ожиданий блокировки. При включенной настройке в логе делается запись, когда в сессии PostgreSQL время ожидания получения блокировки превышает значение настройки Deadlock timeout.
По умолчанию настройка выключена.
Подробнее см. в документации PostgreSQL
. -
Log min duration sample
Консоль управления
API
Terraform
Настройка работает так же, как Log min duration statement, но применяется только к командам, указанным в параметре Log statement sample rate.
При значении
0
логируется время работы всех указанных команд.Минимальное значение —
-1
(отключает логирование времени работы команд), максимальное значение —2147483647
, по умолчанию —-1
.Подробнее см. в документации PostgreSQL
. -
Log min duration statement
Консоль управления
API
CLI
Terraform
Задает минимальное время работы команды (в миллисекундах), при котором команда будет записана в лог.
При значении
0
логируется время работы всех команд.Минимальное значение —
-1
(отключает логирование времени работы), максимальное значение —2147483647
, по умолчанию —-1
.Подробнее см. в документации PostgreSQL
.Настройка действует на уровне кластера Managed Service for PostgreSQL, но ее можно переопределить на уровне пользователя.
-
Log min error statement
Консоль управления
API
CLI
Terraform
Определяет уровень логирования ошибок выполнения команд SQL. Сообщение о выполнении команды будет записано в лог, если он завершится ошибкой с указанным уровнем важности или выше. Возможные значения:
DEBUG5
,DEBUG4
,DEBUG3
,DEBUG2
,DEBUG1
,INFO
,NOTICE
,WARNING
,ERROR
,LOG
,FATAL
иPANIC
.По умолчанию используется
ERROR
. Это означает, что в лог PostgreSQL будут записаны все команды, завершившиеся сообщением с уровнем важностиERROR
,LOG
,FATAL
иPANIC
.Чтобы отключить запись большинства команд с ошибками, выберите значение
PANIC
.Подробнее см. в документации PostgreSQL
. -
Log min messages
Консоль управления
API
CLI
Terraform
Определяет уровень логирования PostgreSQL. Записываются все сообщения выбранного уровня важности и выше. Возможные значения (по возрастанию важности):
DEBUG5
,DEBUG4
,DEBUG3
,DEBUG2
,DEBUG1
,INFO
,NOTICE
,WARNING
,ERROR
,LOG
,FATAL
иPANIC
.По умолчанию используется
WARNING
. Это означает, что в лог PostgreSQL будут записаны все сообщения с уровнем важностиWARNING
,ERROR
,LOG
,FATAL
иPANIC
.Чтобы отключить запись большинства сообщений, выберите значение
PANIC
.Подробнее см. в документации PostgreSQL
. -
Log parameter max length
Консоль управления
API
CLI
Terraform
Сокращает до указанного количества байтов значение каждого привязанного SQL-параметра, которые выводятся вместе с SQL-операторами при логировании всех сообщений, кроме сообщений об ошибках.
При значении
0
логирование отключено.Минимальное значение —
-1
(значения параметров логируются полностью), максимальное значение —1073741823
. По умолчанию установлено минимальное значение.Подробнее см. в документации PostgreSQL
. -
Log parameter max length on error
Все интерфейсы
Сокращает до указанного количества байтов значение каждого привязанного SQL-параметра, которые выводятся вместе с SQL-операторами при логировании сообщений об ошибках.
При значении
0
логирование отключено.Минимальное значение —
-1
(значения параметров логируются полностью), максимальное значение —1073741823
. По умолчанию установлено минимальное значение.Подробнее см. в документации PostgreSQL
. -
Log recovery conflict waits
Консоль управления
API
CLI
Управляет логированием длительных ожиданий конфликтов восстановления при чтении WAL для продолжения репликации. При включенной настройке в логе создается запись, когда в сессии PostgreSQL время ожидания разрешения конфликтов восстановления превышает значение настройки Deadlock timeout. Функциональность поддерживается PostgreSQL начиная с версии 14.
По умолчанию настройка выключена.
Подробнее см. в документации PostgreSQL
. -
Log statement
Консоль управления
API
CLI
Terraform
Фильтр команд SQL, которые должны записываться в лог PostgreSQL:
none
(LOG_STATEMENT_NONE
для Terraform, CLI и API) — фильтр отключен, команды SQL не записываются в лог.ddl
(LOG_STATEMENT_DDL
для Terraform, CLI и API) — в лог записываются команды SQL, которые позволяют изменять определения структур данных (CREATE
,ALTER
,DROP
и т. п.).mod
(LOG_STATEMENT_MOD
для Terraform, CLI и API) — в лог записываются команды SQL, попадающие под фильтрddl
, и команды, позволяющие изменять данные (INSERT
,UPDATE
и т. п.).all
(LOG_STATEMENT_ALL
для Terraform, CLI и API) — в лог записываются все команды SQL.
Значение по умолчанию —
none
.Подробнее см. в документации PostgreSQL
.Настройка действует на уровне кластера Managed Service for PostgreSQL, но ее можно переопределить на уровне пользователя.
-
Log statement sample rate
Консоль управления
API
Terraform
Доля команд SQL, которые будут записываться в лог дополнительно (помимо команд, записываемых по другим причинам).
Минимальное значение —
0.0
, максимальное значение —1.0
, по умолчанию —0.0
.Подробнее см. в документации PostgreSQL
. -
Log temp files
Консоль управления
API
CLI
Terraform
Задает минимальный размер временного файла, при удалении которого информация о нем будет записана в лог PostgreSQL.
Минимальное значение —
-1
(информация об удаленных файлах не логируется), максимальное значение —2147483647
(2 ГБ), при значении0
в лог записываются размеры и имена всех временных файлов. По умолчанию —-1
.Подробнее см. в документации PostgreSQL
. -
Log transaction sample rate
Консоль управления
API
Terraform
Доля транзакций, команды из которых будут записываться в лог дополнительно (помимо команд, записываемых по другим причинам).
Минимальное значение —
0.0
, максимальное значение —1.0
, по умолчанию —0.0
.Подробнее см. в документации PostgreSQL
. -
Logical decoding work mem
Все интерфейсы
Максимальный объем памяти (в байтах), выделяемый для логического декодирования
перед записью на локальный диск. Настройка ограничивает объем памяти, используемый в соединении для логической репликации.Минимальное значение —
65536
(64 КБ), максимальное значение —1099511627776
(1 ТБ), по умолчанию –67108864
(64 МБ).Подробнее см. в документации PostgreSQL
. -
Maintenance io concurrency
Все интерфейсы
Максимальное число параллельных операций дискового ввода-вывода при обслуживании PostgreSQL командами
VACUUM
,CREATE INDEX
иALTER TABLE ADD FOREIGN KEY
, в отдельной сессии работы с БД. Чем больше это число, тем больше команд обслуживания PostgreSQL будет пытаться выполнить параллельно в отдельной сессии.Минимальное значение —
0
, максимальное значение —1000
, по умолчанию —10
.Подробнее см. в документации PostgreSQL
. -
Maintenance work mem
Все интерфейсы
Максимальный объем памяти (в байтах) для операций обслуживания PostgreSQL, таких как
VACUUM
,CREATE INDEX
иALTER TABLE ADD FOREIGN KEY
. Значение должно быть кратно 1024.Минимальное значение —
1048576
(1 МБ), максимальное значение —137438953472
(128 ГБ), по умолчанию —67108864
(64 МБ).Подробнее см. в документации PostgreSQL
. -
Max connections
Консоль управления
API
CLI
Terraform
Максимальное число одновременных подключений к хосту PostgreSQL.
Минимальное значение —
1
, максимальное значение и значение по умолчанию зависят от выбранного класса хостов и задаются формулой:200 × <количество_vCPU_на_одном_хосте>
Для хостов с гарантированной долей vCPU ниже 100% (
burstable
) используется фиксированное максимальное значение —200
.По умолчанию установлено максимальное значение.
Подробнее см. в документации PostgreSQL
. -
Max locks per transaction
Консоль управления
API
CLI
Terraform
Среднее количество объектов, которые могут быть заблокированы одной транзакцией. Отдельные транзакции могут блокировать больше объектов, если общее количество объектов, заблокированных всеми транзакциями, помещается в таблицу блокировок.
Минимальное значение —
10
, максимальное значение —2147483647
, по умолчанию —64
.Подробнее см. в документации PostgreSQL
. -
Max logical replication workers
Консоль управления
Максимальное число работающих процессов логической репликации PostgreSQL.
Минимальное значение —
4
, максимальное значение —100
. По умолчанию установлено минимальное значение.Подробнее см. в документации PostgreSQL
. -
Max parallel maintenance workers
Все интерфейсы
Максимальное число параллельно работающих процессов PostgreSQL, инициированных одной служебной командой (например,
CREATE INDEX
).Минимальное значение —
0
, максимальное значение —1024
, по умолчанию —2
.Подробнее см. в документации PostgreSQL
. -
Max parallel workers
Все интерфейсы
Максимальное число параллельно работающих процессов PostgreSQL.
Минимальное значение —
0
, максимальное значение —1024
, по умолчанию —8
.Подробнее см. в документации PostgreSQL
. -
Max parallel workers per gather
Все интерфейсы
Максимальное число параллельно работающих процессов, которые могут запускаться одним узлом Gather
.Минимальное значение —
0
, максимальное значение —1024
, по умолчанию —2
.Подробнее см. в документации PostgreSQL
. -
Max pred locks per transaction
Консоль управления
API
CLI
Terraform
Среднее количество объектов, которые могут быть заблокированы предикатными блокировками
за одну транзакцию. Отдельные транзакции могут блокировать больше объектов, чем указано в настройке, если общее количество объектов, заблокированных всеми транзакциями, помещается в таблицу блокировок.Минимальное значение —
10
, максимальное значение —2147483647
(2 ГБ), по умолчанию —64
.Подробнее см. в документации PostgreSQL
. -
Max prepared transactions
Консоль управления
API
CLI
Terraform
Максимальное число транзакций, которые могут одновременно находиться в подготовленном состоянии
.Минимальное значение —
0
, максимальное значение —262143
, по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Max replication slots
Консоль управления
Максимальное число слотов репликации
. Слоты репликации автоматически обеспечивают механизм сохранения файлов лога WAL (Write-Ahead Log), пока они не будут получены всеми репликами.Минимальное значение —
20
, максимальное значение —100
. По умолчанию установлено минимальное значение.Подробнее см. в документации PostgreSQL
. -
Max slot wal keep size
Консоль управления
API
Terraform
Максимальный размер (в байтах) файлов лога WAL
(Write-Ahead Log), который хранится на хосте-мастере при репликации.Минимальное значение —
67108864
(64 МБ). Максимальное значение — 50% от размера хранилища. Значение по умолчанию —-1
(не ограничен). Значение должно быть кратно 1024.Подробнее см. в документации PostgreSQL
. -
Max standby streaming delay
Все интерфейсы
Время ожидания (в миллисекундах), по истечении которого хост-реплика в режиме горячего резерва начнет отменять запросы, конфликтующие с очередными изменениями в WAL
.Минимальное значение —
-1
(время ожидания не ограничено), максимальное значение —2147483647
, по умолчанию —30000
(30 секунд).Подробнее см. в документации PostgreSQL
. -
Max wal senders
Консоль управления
Максимальное число параллельных соединений от хостов-источников потока репликации.
Минимальное значение —
20
, максимальное значение —100
. По умолчанию установлено минимальное значение.Подробнее см. в документации PostgreSQL
. -
Max wal size
Все интерфейсы
Максимальный размер (в байтах) файла WAL
, при достижении которого запускается снятие автоматических контрольных точек.Минимальное значение —
2
, максимальное значение зависит от размера хранилища и равно 10% от этой величины, но не более8589934592
(8 ГБ). По умолчанию установлено максимальное значение.Подробнее см. в документации PostgreSQL
. -
Max worker processes
Консоль управления
API
CLI
Terraform
Максимальное число фоновых процессов PostgreSQL, которое можно запустить в текущей системе.
Минимальное значение —
0
, максимальное значение —1024
, по умолчанию —8
.Подробнее см. в документации PostgreSQL
. -
Min wal size
Все интерфейсы
Объем дискового пространства (в байтах), занимаемый WAL
, при превышении которого старые файлы WAL в контрольных точках удаляются.Минимальное значение —
2
, максимальное значение зависит от размера хранилища и равно 5% от этой величины, но не более1073741824
(1 ГБ). По умолчанию установлено максимальное значение.Подробнее см. в документации PostgreSQL
. -
Old snapshot threshold
Консоль управления
API
CLI
Terraform
Минимальное время (в миллисекундах), в течение которого можно пользоваться снимком состояния для выполнения запроса без риска получить ошибку.
Минимальное значение —
-1
(не ограничено), максимальное значение —86400000
(24 часа), по умолчанию —-1
.Подробнее см. в документации PostgreSQL
. -
Online analyze enable
Консоль управления
API
Включает использование модуля
online_analyze
, который обновляет статистику после операцийINSERT
,UPDATE
,DELETE
илиSELECT INTO
в целевых таблицах. -
Operator precedence warning
Все интерфейсы
Разрешает анализатору запроса выдавать предупреждение для всех конструкций, которые поменяли поведение после версии 9.4 в результате изменения приоритетов команд. Функциональность не поддерживается PostgreSQL начиная с версии 14.
По умолчанию настройка выключена.
Подробнее см. в документации PostgreSQL
. -
Parallel leader participation
Все интерфейсы
Разрешает ведущему процессу выполнять план запроса ниже узлов Gather и Gather Merge, не ожидая рабочие процессы.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Pg hint plan debug print
Консоль управления
API
Terraform
Настройка вывода и детализации отладочной информации модулем
pg_hint_plan
. Действует при включенной настройке Pg hint plan enable hint. Возможные значения (по возрастанию детализации):off
(PG_HINT_PLAN_DEBUG_PRINT_OFF
для Terraform и API) — вывод отключен;on
(PG_HINT_PLAN_DEBUG_PRINT_ON
для Terraform и API) — по умолчанию;detailed
(PG_HINT_PLAN_DEBUG_PRINT_DETAILED
для Terraform и API);verbose
(PG_HINT_PLAN_DEBUG_PRINT_VERBOSE
для Terraform и API).
-
Pg hint plan enable hint
Консоль управления
API
Terraform
Включает использование модуля
pg_hint_plan
для корректировки автоматических планов выполнения запросов, применяя так называемыеуказания
в виде простых описаний в особых SQL-комментариях. -
Pg hint plan enable hint table
Консоль управления
API
Terraform
Включает использование таблицы
hint_plan.hints
. Она содержитуказания
для модуляpg_hint_plan
и применяется, если нет возможности редактировать запросы. Таблица содержит столбцы:id
— уникальный номер строки суказанием
. Этот столбец заполняется автоматически.norm_query_string
— шаблон для выбора запросов, к которым будет относитьсяуказание
. Вместо констант используйте символ?
. Пробельные символы в шаблоне являются значимыми.application_name
— приложение-инициатор сессий, в которых будет действоватьуказание
.hint
—указания
без обрамляющей разметки комментариев.
-
Pg hint plan message level
Консоль управления
API
Terraform
Уровень отладочных сообщений модуля
pg_hint_plan
, которые будут попадать в лог PostgreSQL. Действует при включенной настройке Pg hint plan enable hint. Возможные значения:error
;warning
;notice
;info
(по умолчанию);log
;debug
.
-
Pg qualstats enabled
Консоль управления
API
CLI
Включает использование модуля
pg_qualstats
для сбора статистики по предикатам в операторахWHERE
и блокахJOIN
. Применяется для анализа наиболее часто вычисляемых предикатов запросов. -
Pg qualstats max
Консоль управления
API
CLI
Максимальное число отслеживаемых предикатов для модуля
pg_qualstats
. Действует при включенной настройке Pg qualstats enabled.Минимальное значение —
100
, максимальное значение —2147483647
, по умолчанию —1000
. -
Pg qualstats resolve oids
Консоль управления
API
CLI
Включает восстановление имен таблиц по идентификатору
OID
в процессе сбора статистики запроса для модуляpg_qualstats
. Настройка облегчает анализ данных, но требует больше дискового пространства для хранения статистики. Действует при включенной настройке Pg qualstats enabled.По умолчанию настройка выключена.
-
Pg qualstats sample rate
Консоль управления
API
CLI
Доля запросов (число от 0 до 1), для которых выполняется сбор статистики модулем
pg_qualstats
. Действует при включенной настройке Pg qualstats enabled. Особые значения настройки:0
— отключает настройку;1
— анализируются все запросы;-1
— автоматический режим, доля запросов обратна к значению настройки Max connections и зависит от выбранного класса хостов.
По умолчанию используется значение
-1
. -
Pg qualstats track constants
Консоль управления
API
CLI
Включает отслеживание уже встреченных предикатов в последующих запросах при сборе статистики модулем
pg_qualstats
. Действует при включенной настройке Pg qualstats enabled.По умолчанию настройка включена.
-
Plan cache mode
Консоль управления
API
Terraform
Определяет, какой тип плана запроса (общий или специализированный) будет использован при выполнении подготовленных команд
. Возможные значения:auto
(PLAN_CACHE_MODE_AUTO
для Terraform и API) — автоматический выбор;force_custom_plan
(PLAN_CACHE_MODE_FORCE_CUSTOM_PLAN
для Terraform и API) — принудительно использовать специализированные планы;force_generic_plan
(PLAN_CACHE_MODE_FORCE_GENERIC_PLAN
для Terraform и API) — принудительно использовать общие планы.
Значение по умолчанию —
auto
.Подробнее см. в документации PostgreSQL
. -
Plantuner fix empty table
Консоль управления
API
Разрешает модулю
plantuner
скрывать от планировщика отдельные индексы, чтобы они не использовались в планах запросов.По умолчанию настройка выключена.
-
Quote all identifiers
Все интерфейсы
Включает принудительное обрамление кавычками всех идентификаторов при формировании SQL-запросов из базы данных, например, при выполнении операции
EXPLAIN
.По умолчанию настройка выключена.
Подробнее см. в документации PostgreSQL
. -
Random page cost
Все интерфейсы
Задает планировщику примерную стоимость чтения одной произвольной страницы с диска. Если значение этой настройки меньше, чем у Seq page cost, планировщик отдаст предпочтение сканированию по индексу.
Минимальное значение —
0
, по умолчанию —1
.Подробнее см. в документации PostgreSQL
. -
Row security
Все интерфейсы
Управляет обработкой запросов, к которым применима как минимум одна политика защиты строк
. При выключении настройки такие запросы будут выдавать ошибку.По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Search path
Все интерфейсы
Список имен схем БД через запятую. При обращении к объектам, размещенным в перечисленных схемах, можно не указывать имя схемы.
Значение по умолчанию —
$user, public
(схема текущего пользователя и схемаpublic
).Подробнее см. в документации PostgreSQL
. -
Seq page cost
Все интерфейсы
Задает планировщику примерную стоимость чтения одной страницы с диска при выполнении серии последовательных чтений.
Минимальное значение —
0
, по умолчанию —1
.Подробнее см. в документации PostgreSQL
. -
Session duration timeout
Консоль управления
API
CLI
Максимальное время жизни самой продолжительной активной сессии или транзакции (в миллисекундах). Применяется только для сессий в статусах
active
иidle in transaction
.Чтобы настройка не влияла на производительность кластера, периодически проверяется самая длинная транзакция/сессия. Время между проверками выбирается случайным образом в интервале от 5 до 10 минут. Например, если задать значение настройки
1000
, то сессия завершится в течение 1 секунды + 5–10 минут.Если задано значение больше чем значение по умолчанию, это может привести к увеличению размера БД и замедлению работы операционной системы.
Минимальное значение —
0
(нет ограничений на время жизни активной сессии/транзакции), максимальное значение —2147483647
, по умолчанию —43200000
(12 часов). Минимальная гранулярность изменения настройки —1000
.Подробнее о возможных статусах сессии см. в документации PostgreSQL
. -
Shared buffers
Консоль управления
API
CLI
Terraform
Объем памяти (в байтах), который PostgreSQL может использовать для буферов в разделяемой памяти (shared memory).
Минимальное значение —
131072
(128 КБ), максимальное значение зависит от выбранного класса хостов и равно 80% от общего размера RAM хоста кластера Managed Service for PostgreSQL. По умолчанию установлено значение 25% от общего размера RAM, но не более 8 ГБ.Подробнее см. в документации PostgreSQL
. -
Shared preload libraries
Консоль управления
API
Terraform
Разделенные запятыми имена библиотек общего пользования (shared libraries), которые будут загружаться при запуске сервера PostgreSQL. Библиотеки требуются для работы некоторых расширений PostgreSQL.
Подробнее см. в документации PostgreSQL
. -
Standard conforming strings
Консоль управления
API
Terraform
Включает прочтение символа
\
в обычных строковых константах ('...'
) не как спецсимвола, а как обычного символа согласно стандарту SQL.По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Statement timeout
Консоль управления
API
CLI
Terraform
Максимальная длительность (в миллисекундах) выполнения команды, при превышении которой команда прерывается.
Минимальное значение —
0
, максимальное значение —2147483647
, по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Synchronize seqscans
Все интерфейсы
Включает синхронизацию обращений при последовательном сканировании больших таблиц, чтобы эти операции читали один блок примерно в одно и то же время. При выключении последовательное сканирование всегда будет начинаться с начала таблицы, как это было принято до версии 8.3.
По умолчанию настройка включена.
Подробнее см. в документации PostgreSQL
. -
Synchronous commit
Все интерфейсы
Определяет, после какого этапа обработки WAL
сервер посчитает транзакцию завершенной.Допустимые значения:
Консоль управления/CLITerraformAPIon
— транзакция подтверждается, если WAL записан на диск мастера и на диск кворумной реплики.off
— транзакция подтверждается, даже если данные еще не попали в WAL. Запись несинхронна, данные о транзакции могут быть потеряны в результате сбоя дисковой подсистемы.local
— транзакция подтверждается, если WAL записан на диск мастера.remote_write
— транзакция подтверждается, если WAL записан на диск мастера, кворумная реплика приняла WAL и передала его операционной системе для записи на диск. В случае потери дисковой системы мастера и сбоя операционной системы на кворумной реплике данные транзакции с таким уровнем синхронизации могут быть утеряны.remote_apply
— транзакция подтверждается, если WAL записан на диск мастера, кворумная реплика приняла WAL и применила изменения из него.
Значение по умолчанию —
on
.1
или"SYNCHRONOUS_COMMIT_ON"
— транзакция подтверждается, если WAL записан на диск мастера и на диск кворумной реплики.2
или"SYNCHRONOUS_COMMIT_OFF"
— транзакция подтверждается, даже если данные еще не попали в WAL. Запись несинхронна, данные о транзакции могут быть потеряны в результате сбоя дисковой подсистемы.3
или"SYNCHRONOUS_COMMIT_LOCAL"
— транзакция подтверждается, если WAL записан на диск мастера.4
или"SYNCHRONOUS_COMMIT_REMOTE_WRITE"
— транзакция подтверждается, если WAL записан на диск мастера, кворумная реплика приняла WAL и передала его операционной системе для записи на диск. В случае потери дисковой системы мастера и сбоя операционной системы на кворумной реплике данные транзакции с таким уровнем синхронизации могут быть утеряны.5
или"SYNCHRONOUS_COMMIT_REMOTE_APPLY"
— транзакция подтверждается, если WAL записан на диск мастера, кворумная реплика приняла WAL и применила изменения из него.
Значение по умолчанию —
"SYNCHRONOUS_COMMIT_ON"
.SYNCHRONOUS_COMMIT_ON
— транзакция подтверждается, если WAL записан на диск мастера и на диск кворумной реплики.SYNCHRONOUS_COMMIT_OFF
— транзакция подтверждается, даже если данные еще не попали в WAL. Запись несинхронна, данные о транзакции могут быть потеряны в результате сбоя дисковой подсистемы.SYNCHRONOUS_COMMIT_LOCAL
— транзакция подтверждается, если WAL записан на диск мастера.SYNCHRONOUS_COMMIT_REMOTE_WRITE
— транзакция подтверждается, если WAL записан на диск мастера, кворумная реплика приняла WAL и передала его операционной системе для записи на диск. В случае потери дисковой системы мастера и сбоя операционной системы на кворумной реплике данные транзакции с таким уровнем синхронизации могут быть утеряны.SYNCHRONOUS_COMMIT_REMOTE_APPLY
— транзакция подтверждается, если WAL записан на диск мастера, кворумная реплика приняла WAL и применила изменения из него.
Значение по умолчанию —
SYNCHRONOUS_COMMIT_ON
.Подробнее см. в документации PostgreSQL
.Настройка действует на уровне кластера Managed Service for PostgreSQL, но ее можно переопределить на уровне пользователя.
-
Temp buffers
Все интерфейсы
Максимальный объем памяти (в байтах), выделяемой для временных буферов в каждой сессии.
Минимальное значение —
100
, максимальное значение —1073741823
(1 ГБ), по умолчанию —8388608
(8 МБ).Подробнее см. в документации PostgreSQL
. -
Temp file limit
Консоль управления
API
CLI
Terraform
Максимальный объем дискового пространства (в килобайтах), который один процесс сможет использовать для временных файлов. Транзакция, которая попытается превысить этот предел, будет отменена.
Большие запросы выполняются не в оперативной памяти, а на диске. Слишком большие запросы нагружают диск и мешают выполнению других запросов. Настройка предотвращает выполнение запросов, которые снижают производительность, ограничивая размер временных файлов.
Минимальное значение —
-1
(нет ограничений), максимальное значение —2147483647
(2 ГБ), по умолчанию —-1
.Подробнее см. в документации PostgreSQL
.Настройка действует на уровне кластера Managed Service for PostgreSQL, но ее можно переопределить на уровне пользователя.
-
Timezone
Все интерфейсы
Часовой пояс для вывода и ввода значений времени.
Значение по умолчанию —
Europe/Moscow
.Подробнее см. в документации PostgreSQL
. -
Track activity query size
Консоль управления
API
Terraform
Объем памяти (в байтах), резервируемой в каждой активной сессии для хранения текста выполняемой в данной момент команды.
Минимальное значение —
100
, максимальное значение —102400
, по умолчанию —1024
.Подробнее см. в документации PostgreSQL
. -
Transform null equals
Все интерфейсы
Включает интерпретацию условия
выражение = NULL
каквыражение IS NULL
. Условие истинно, если выражение имеет значениеNULL
, и ложно в противном случае. Согласно стандарту SQL, сравнениевыражение = NULL
всегда возвращаетNULL
(неизвестное значение).По умолчанию настройка выключена (действует стандарт SQL).
Подробнее см. в документации PostgreSQL
. -
Vacuum cleanup index scale factor
Все интерфейсы
Доля кортежей в индексе, попавших в предыдущий срез статистики. При выполнении операции
VACUUM
статистика индекса считается устаревшей, если отношение числа кортежей, добавляемых в индекс, к текущему числу кортежей в индексе превышает указанную долю. В этом случае будет выполнено новое сканирование индекса. Функциональность не поддерживается PostgreSQL начиная с версии 14.Минимальное значение —
0.0
, максимальное значение —10000000000.0
, по умолчанию —0.1
.Подробнее см. в документации PostgreSQL
. -
Vacuum cost delay
Все интерфейсы
Время (в миллисекундах), в течение которого будет простаивать процесс выполнения команд
VACUUM
иANALYZE
, превысивший предел стоимости (см. настройку Vacuum cost limit).Минимальное значение —
0
, максимальное значение —100
, по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Vacuum cost limit
Все интерфейсы
Предел стоимости, при накоплении которой процесс очистки
VACUUM
будет приостанавливаться (переходить в спящий режим).Минимальное значение —
1
, максимальное значение —10000
, по умолчанию —200
.Подробнее см. в документации PostgreSQL
. -
Vacuum cost page dirty
Все интерфейсы
Условная стоимость такой операции очистки
VACUUM
, при которой изменяется блок, не модифицированный ранее.Минимальное значение —
0
, максимальное значение —10000
, по умолчанию —20
.Подробнее см. в документации PostgreSQL
. -
Vacuum cost page hit
Все интерфейсы
Условная стоимость очистки буфера, оказавшегося в общем кеше.
Минимальное значение —
0
, максимальное значение —10000
, по умолчанию —1
.Подробнее см. в документации PostgreSQL
. -
Vacuum cost page miss
Все интерфейсы
Условная стоимость очистки буфера, который нужно прочитать с диска.
Минимальное значение —
0
, максимальное значение —10000
, по умолчанию —10
.Подробнее см. в документации PostgreSQL
. -
Vacuum failsafe age
Консоль управления
API
CLI
Максимальный возраст
замороженной
(уже завершенной) транзакции, измеряемый в количестве транзакций, запущенных после нее. По достижении этого показателя запускается очистка процессомVACUUM
, чтобы избежать переполнения счетчика транзакций. Функциональность поддерживается PostgreSQL начиная с версии 14.Минимальное значение —
0
, максимальное значение —2100000000
, по умолчанию —1600000000
.Подробнее см. в документации PostgreSQL
. -
Vacuum multixact failsafe age
Консоль управления
API
CLI
Максимальный возраст замороженной (уже завершенной) мультитранзакции
, измеряемый в количестве мультитранзакций, запущенных после нее. По достижении этого показателя запускается очистка процессомVACUUM
, чтобы избежать переполнения счетчика мультитранзакций. Функциональность поддерживается PostgreSQL начиная с версии 14.Минимальное значение —
0
, максимальное значение —2100000000
, по умолчанию —1600000000
.Подробнее см. в документации PostgreSQL
. -
Wal keep size
Консоль управления
API
Terraform
Минимальный размер устаревших сегментов лога (в байтах), сохраняемых в папке WAL
, чтобы при необходимости реплики могли их загрузить.Минимальное значение —
0
(прошлые фрагменты не сохраняются для репликации), максимальное значение —2251799812636672
(2 ТБ), по умолчанию —0
.Подробнее см. в документации PostgreSQL
. -
Work mem
Все интерфейсы
Базовый объем памяти (в байтах), который будет использоваться во внутренних операциях при обработке запросов (например, для сортировки или хеш-таблиц), прежде чем будут задействованы временные файлы на диске.
Минимальное значение —
64
, максимальное значение —2147483647
(2 ГБ), по умолчанию —4194304
(4 МБ).Подробнее см. в документации PostgreSQL
. -
Xmlbinary
Все интерфейсы
Способ кодирования двоичных данных в XML. Возможные значения:
base64
(XML_BINARY_BASE64
для Terraform, API и CLI) — BASE64-кодирование;hex
(XML_BINARY_HEX
для Terraform, API и CLI) — шестнадцатеричное кодирование.
Значение по умолчанию —
base64
.Подробнее см. в документации PostgreSQL
. -
Xmloption
Все интерфейсы
Тип преобразования XML-данных в символьные по умолчанию. Возможные значения:
document
(XML_OPTION_DOCUMENT
для Terraform, API и CLI) — XML-документ;content
(XML_OPTION_CONTENT
для Terraform, API и CLI) — фрагмент XML-документа.
Значение по умолчанию —
content
.Подробнее см. в документации PostgreSQL
.
Настройки на уровне пользователя
Эти настройки влияют на поведение PostgreSQL при работе с запросами пользователя:
-
Conn limit
Консоль управления
API
CLI
Максимальное допустимое количество соединений для пользователя.
В транзакционном пулинге (transaction pooling) настройка ограничивает количество одновременных соединений в транзакции пользователя. При использовании этого типа пулинга пользователь может открыть тысячи соединений, но одновременно работать смогут только
N
соединений, гдеN
— значение настройки.В сессионном пулинге (session pooling) настройка ограничивает количество соединений пользователя с каждым хостом в кластере PostgreSQL. При использовании этого типа пулинга значение настройки должно быть не меньше суммы всех соединений, которые могут быть открыты бэкендами пользовательского сервиса. Каждое открытое серверное соединение немного замедляет работу PostgreSQL на OLTP-нагрузке.
Для сессионного пулинга применяются следующие принципы:
-
При добавлении пользователя Managed Service for PostgreSQL по умолчанию резервирует для него 50 подключений к каждому хосту в кластере PostgreSQL. Минимальное количество подключений на пользователя — 1.
-
Суммарное количество подключений, зарезервированных для пользователей, не должно превышать значение параметра Max connections. Managed Service for PostgreSQL резервирует 15 служебных подключений на каждом хосте.
Например, если для кластера задана настройка
"max_connections": 100
, то вы можете зарезервировать не больше 85 подключений для пользователей на каждый хост кластера. -
Рекомендуется разнести по разным пользователям разные сервисы, использующие PostgreSQL, и задать нужное значение настройки для каждого пользователя. Если при проблемах в одном сервисе возникнет большое количество соединений, другие сервисы не будут затронуты и смогут подключаться к PostgreSQL.
Эта настройка зависит от выбранного класса хостов.
-
-
Default transaction isolation
Консоль управления
API
CLI
См. описание настройки уровня кластера Default transaction isolation.
-
Grants
Консоль управления
API
CLI
Terraform
Набор ролей, выданных пользователю.
-
Lock timeout
Консоль управления
API
CLI
См. описание настройки уровня кластера Lock timeout.
-
Log min duration statement
Консоль управления
API
CLI
См. описание настройки уровня кластера Log min duration statement.
Рекомендуется определить для каждого сервиса и соответствующего ему пользователя, что считается медленным выполнением запроса, и логировать только такие запросы. Например, для веб-сервиса медленным может считаться запрос, выполняющийся более одной секунды, а для сервиса построения отчетов — запрос, выполняющийся более 10 минут.
Подробнее см. в документации PostgreSQL
. -
Log statement
Консоль управления
API
CLI
См. описание настройки уровня кластера Log statement.
-
Login
Консоль управления
API
CLI
Определяет, может ли пользователь подключаться к кластеру PostgreSQL.
Значение по умолчанию —
true
(пользователь может подключаться к кластеру). -
Pg audit log
Консоль управления
Определяет, какие запросы пользователя попадут в лог для аудита.
Настройка имеет силу только если:
- к кластеру подключена библиотека
pgaudit
; - к базе данных подключено расширение
pgaudit
.
Возможные значения:
read
— в лог попадут запросыSELECT
иCOPY
, когда источником данных выступает отношение или запрос.write
— в лог попадут запросыINSERT
,UPDATE
,DELETE
,TRUNCATE
иCOPY
, когда приемником данных выступает отношение.function
— в лог попадут вызовы функций и блокиDO
.role
— в лог попадут выражения, связанные с управлением ролями и привилегиями:GRANT
,REVOKE
,CREATE/ALTER/DROP ROLE
.ddl
— в лог попадут всеDDL
, которые не входят в классROLE
.misc
— в лог попадут вспомогательные команды:DISCARD
,FETCH
,CHECKPOINT
,VACUUM
,SET
.misc_set
— в лог попадут вспомогательные командыSET
, например,SET ROLE
.
Можно выбрать несколько значений. По умолчанию логи аудита для пользователя отключены.
Подробнее о настройке логов для аудита см. в разделе Использование pgaudit.
- к кластеру подключена библиотека
-
Prepared statements pooling
Консоль управления
Разрешает использовать подготовленные инструкции с объединением транзакций.
-
Synchronous commit
Консоль управления
API
CLI
См. описание настройки уровня кластера Synchronous commit.
-
Temp file limit
Консоль управления
API
CLI
См. описание настройки уровня кластера Temp file limit.
-
Wal sender timeout
Консоль управления
Время (в миллисекундах), по истечении которого прерываются неактивные соединения репликации. Доступно для кластеров Managed Service for PostgreSQL, начиная с версии 12.