Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

Конфигурационные параметры сервера (GUC)

Contents

Эта страница содержит список параметров конфигурации сервера Greengage DB в алфавитном порядке. Подробнее о механизме конфигурации сервера см. в статье Настройка СУБД с помощью GUC.

Отдельный подраздел Параметры разработки содержит параметры, предназначенные только для разработки и тестирования. Не изменяйте их в production-кластерах.

Некоторые параметры конфигурации Greengage DB намеренно исключены из этого раздела. Обычно такие параметры не предназначены для изменения пользователями в реальных сценариях.

ПРИМЕЧАНИЕ
  • Контекст параметра определяет способы изменения его значения. Описания возможных значений контекста приведены в разделе Контекст.

  • Область определения указывает места установки параметра: master или local (независимые значения для мастера и сегментов). Подробнее см. в разделе master и local. Для параметров, которые не могут быть изменены пользователями, область определения указана как read only.

application_name

Устанавливает имя приложения для клиентской сессии. Например, при подключении через psql будет установлено значение psql. Указание имени приложения позволяет отображать его в сообщениях лога и представлениях статистики.

Диапазон значений Значение по умолчанию Область определения Контекст

string

 — 

master

user

archive_command

Вызов командной строки для архивирования файлов журнала предзаписи (Write-Ahead Log, WAL), если значение archive_mode — on или always. Команда должна возвращать нулевой код выхода только при успешном выполнении.

Команда может содержать символы-заглушки:

  • %p — путь к архивируемому файлу WAL относительно каталога данных.

  • %f — имя архивируемого файла WAL.

ПРИМЕЧАНИЕ

Чтобы включить в команду символ %, используйте %%.

Диапазон значений Значение по умолчанию Область определения Контекст

string

 — 

master

sighup

archive_mode

Определяет, переносить ли завершенные сегменты файлов WAL в архивное хранилище с помощью команды archive_command.

Возможные значения:

  • off (по умолчанию) — не архивировать файлы WAL.

  • on — архивировать файлы WAL в обычном режиме.

  • always — всегда архивировать файлы WAL, даже при восстановлении.

Диапазон значений Значение по умолчанию Область определения Контекст

on
off
always

off

master

postmaster

array_nulls

Определяет, распознает ли парсер ввода массивов значение NULL без кавычек как null-элемент массива. По умолчанию on, что позволяет вводить массивы со значениями null. При значении off интерпретирует NULL как обычный элемент массива со строковым значением 'NULL'.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

authentication_timeout

Максимальное время на завершение аутентификации клиента. Предотвращает бесконечное удержание подключений зависшими клиентами.

Диапазон значений Значение по умолчанию Область определения Контекст

Временное значение (число и единица)

1min

local

sighup

backslash_quote

Определяет, можно ли представлять кавычку с помощью \' в строковом литерале. Предпочтительный стандартный для SQL способ — две кавычки (''), но PostgreSQL исторически также принимал \'. Однако использование \' создает риски безопасности, поскольку в некоторых кодировках клиента есть многобайтовые символы, где последний байт численно равен ASCII \.

Доступные значения:

  • on — всегда разрешать \';

  • off — всегда запрещать;

  • safe_encoding — разрешить только если кодировка клиента не допускает ASCII \ в многобайтовом символе.

Диапазон значений Значение по умолчанию Область определения Контекст

on
off
safe_encoding

safe_encoding

master

user

block_size

Показывает размер дискового блока в байтах.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

32768

read only

internal

bonjour_name

Задает имя для Bonjour. По умолчанию используется имя хоста, указанное пустой строкой. Эта опция игнорируется, если сервер не скомпилирован с поддержкой Bonjour.

Диапазон значений Значение по умолчанию Область определения Контекст

string

 — 

master

postmaster

check_function_bodies

При значении off отключает проверку тела функции при вызове CREATE FUNCTION. Отключение проверки полезно при восстановлении определений функций из дампа во избежание проблем с прямым обращением.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

client_connection_check_interval

Интервал времени между проверками подключения клиента во время выполнения запросов, в миллисекундах. 0 отключает проверки подключения.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

user

client_encoding

Устанавливает кодировку клиента (набор символов). По умолчанию используется та же кодировка, что и у базы данных. См. раздел Supported Character Sets в документации PostgreSQL.

Диапазон значений Значение по умолчанию Область определения Контекст

название набора символов

UTF8

master

user

client_min_messages

Определяет уровни сообщений, отправляемые клиенту. Каждый уровень включает все последующие. Чем выше уровень, тем меньше сообщений отправляется. Сообщения уровня INFO всегда отправляются клиенту.

Диапазон значений Значение по умолчанию Область определения Контекст

DEBUG5
DEBUG4
DEBUG3
DEBUG2
DEBUG1
LOG
NOTICE
WARNING
ERROR
FATAL
PANIC

NOTICE

master

user

cpu_index_tuple_cost

Для планировщика Postgres задает оценку затрат на обработку каждой строки индекса при индексном сканировании. Измеряется как доля от затрат последовательного чтения страницы.

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой

0.005

master

user

cpu_operator_cost

Для планировщика Postgres задает оценку затрат на обработку каждого оператора в условии WHERE. Измеряется как доля от затрат последовательного чтения страницы.

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой

0.0025

master

user

cpu_tuple_cost

Для планировщика Postgres задает оценку затрат на обработку каждой строки при выполнении запроса. Измеряется как доля от затрат последовательного чтения страницы.

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой

0.01

master

user

cursor_tuple_fraction

Указывает планировщику Postgres, сколько строк ожидается извлечь в запросе курсора. Это позволяет планировщику использовать информацию для оптимизации плана запроса. Значение по умолчанию 1 означает выборку всех строк.

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой 0.0 — 1.0

1.0

master

user

data_checksums

Показывает, включены ли контрольные суммы для хранения данных в heap-хранилище базы данных. Использование контрольных сумм для heap-данных включается или отключается при инициализации системы; это нельзя изменить позже.

Страницы heap-данных содержат heap-таблицы, таблицы системного каталога, индексы и метаданные базы. Оптимизированное для добавления (append-optimized) хранилище имеет встроенную поддержку контрольных сумм, не связанную с этим параметром.

Greengage DB использует контрольные суммы для предотвращения загрузки поврежденных файловой системой данных в память, управляемую процессами базы. При включенных контрольных суммах heap-данных Greengage DB вычисляет и сохраняет контрольные суммы страниц heap-данных при записи на диск. При извлечении страницы с диска проверяется контрольная сумма. При неудачной проверке возвращается ошибка, и страница не загружается в управляемую память.

Если параметр конфигурации ignore_checksum_failure установлен в on, неудачная проверка контрольной суммы генерирует предупреждение, но страница допускается к загрузке. При последующем обновлении страницы она записывается на диск и реплицируется на зеркало. Это может привести к распространению поврежденных данных на зеркало и помешать полному восстановлению. Из-за риска потери данных параметр ignore_checksum_failure следует включать только при необходимости восстановления данных.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

read only

internal

data_directory

Задает каталоги данных Greengage DB для мастера и каждого сегмента на соответствующих хостах. Начальные значения считываются из файла конфигурации базы при инициализации кластера. Подробнее см. в разделе Создание файла конфигурации базы данных.

Диапазон значений Значение по умолчанию Область определения Контекст

string

Задается пользователем при инициализации

local

postmaster

DateStyle

Устанавливает формат отображения дат и времени, а также правила интерпретации неоднозначных введенных значений даты. Переменная содержит две независимые компоненты: спецификацию формата вывода и спецификацию порядка год/месяц/день для ввода/вывода.

Диапазон значений Значение по умолчанию Область определения Контекст

<format>, <date style>

где:

  • <format> может быть ISO, Postgres, SQL или German.

  • <date style> может быть DMY, MDY или YMD.

ISO, MDY

master

user

db_user_namespace

Включает использование имен пользователей на уровне базы данных. При on создавайте пользователей в формате username@dbname. Для создания обычных глобальных пользователей добавляйте @ к имени пользователя на стороне клиента.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

sighup

deadlock_timeout

Время ожидания блокировки перед проверкой состояния взаимоблокировки. На сильно загруженном сервере может потребоваться увеличение значения. В идеале настройка должна превышать типичное время транзакции, чтобы повысить вероятность освобождения блокировки до проверки взаимоблокировки.

Диапазон значений Значение по умолчанию Область определения Контекст

Временное значение (число и единица)

1s

master

superuser

debug_assertions

Включает различные проверки (assertion check). Значение по умолчанию — off. Вы можете установить значение по умолчанию на on при сборке Greengage DB из исходного кода, используя опцию --enable-cassert.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

user

debug_pretty_print

Добавляет отступы в отладочный вывод для более читаемого формата. Требуется client_min_messages или log_min_messages на уровне DEBUG1 или ниже.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

debug_print_parse

Для каждого запроса выводит дерево разбора. Требуется client_min_messages или log_min_messages на уровне DEBUG1 или ниже.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

debug_print_plan

Для каждого запроса выводит план параллельного выполнения. Требуется client_min_messages или log_min_messages на уровне DEBUG1 или ниже.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

debug_print_prelim_plan

Для каждого запроса выводит предварительный план запроса. Требуется client_min_messages или log_min_messages на уровне DEBUG1 или ниже.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

debug_print_rewritten

Для каждого запроса выводит результат работы переписывателя запросов. Требуется client_min_messages или log_min_messages на уровне DEBUG1 или ниже.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

debug_print_slice_table

Для каждого запроса выводит план слайсов запроса. Требуется client_min_messages или log_min_messages на уровне DEBUG1 или ниже.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

default_statistics_target

Задает целевой уровень статистики по умолчанию (количество хранимых наиболее частых значений) для столбцов таблиц без индивидуальной настройки через ALTER TABLE SET STATISTICS. Большие значения могут улучшить качество оценок планировщика Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

integer 1 — 10000

100

master

user

default_tablespace

Табличное пространство по умолчанию для создания объектов (например, таблиц и индексов), если команда CREATE не указывает табличное пространство явно.

Диапазон значений Значение по умолчанию Область определения Контекст

Имя табличного пространства

 — 

master

user

default_text_search_config

Выбирает конфигурацию текстового поиска для вариантов функций текстового поиска без явного аргумента конфигурации. По умолчанию используется pg_catalog.simple, но initdb инициализирует файл конфигурации значением, соответствующим локали lc_ctype, если такая конфигурация найдена.

Диапазон значений Значение по умолчанию Область определения Контекст

Имя конфигурации текстового поиска

pg_catalog.simple

master

user

default_transaction_deferrable

При выполнении на уровне изоляции SERIALIZABLE откладываемая (deferrable) транзакция только для чтения может быть задержана перед началом выполнения. Однако после начала она не несет накладных расходов на обеспечение сериализуемости, поэтому код сериализации не будет прерывать ее из-за параллельных обновлений, из-за чего это свойство полезно для длительных транзакций только для чтения.

Этот параметр контролирует откладываемость новых транзакций по умолчанию. На данный момент не влияет на транзакции чтения-записи или уровни изоляции ниже SERIALIZABLE. По умолчанию off.

ПРИМЕЧАНИЕ

Установка default_transaction_deferrable в on не имеет эффекта в Greengage DB. Откладываются исключительно транзакции только для чтения с уровнем SERIALIZABLE. Однако Greengage DB не поддерживает уровень изоляции транзакций SERIALIZABLE.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

default_transaction_isolation

Определяет уровень изоляции новых транзакций по умолчанию. Greengage DB обрабатывает read uncommitted так же, как read committed, а serializable — так же, как repeatable read.

Диапазон значений Значение по умолчанию Область определения Контекст

read committed
read uncommitted
repeatable read
serializable

read committed

master

user

default_transaction_read_only

Определяет статус "только для чтения" новых транзакций по умолчанию. Транзакция только для чтения не может изменять таблицы, кроме временных.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

dynamic_library_path

Если нужно открыть динамически загружаемый модуль, а имя файла в команде CREATE FUNCTION или LOAD не содержит компонента каталога (нет слеша), система ищет файл по этому пути. $libdir заменяется на каталог библиотек встроенного PostgreSQL. Там устанавливаются модули стандартной поставки PostgreSQL.

Диапазон значений Значение по умолчанию Область определения Контекст

Список абсолютных путей, разделенных двоеточием

$libdir

local

superuser

effective_cache_size

Задает предположение о размере доступного кеша диска для одного запроса для планировщика Postgres. Учитывается при оценке затрат индексного сканирования; большее значение повышает вероятность использования индексов, меньшее — последовательного сканирования. При настройке учитывайте общие буферы Greengage DB и долю кеша диска ядра для файлов данных. Учитывайте также ожидаемое количество параллельных запросов к разным таблицам, поскольку они будут использовать доступное пространство вместе. Параметр не влияет на размер выделенной памяти и не резервирует кеш диска ядра; используется только для оценки.

Устанавливается в единицах block_size (по умолчанию 32K) без указания единиц; например, 262144 для 8 ГБ. Можно указать размер напрямую; например, 1GB — это 32768 блоков. Утилита gpconfig и команда SHOW показывают размер в GB, MB или kB.

Диапазон значений Значение по умолчанию Область определения Контекст

integer (число блоков)
или
число и единица

524288 (16GB)

master

user

enable_bitmapscan

Включает или отключает использование планов bitmap-scan планировщиком Postgres. Обратите внимание: это не то же самое, что сканирование по bitmap-индексу (Bitmap Index Scan). Bitmap Scan динамически преобразует индексы в битовые карты в памяти, ускоряя выполнение сложных запросов к большим таблицам. Это применяется к запросам с несколькими предикатами на разных индексированных столбцах. Битовые карты для каждого столбца сравниваются, чтобы собрать конечный результат.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_groupagg

Включает или отключает использование планов групповой агрегации планировщиком Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_hashagg

Включает или отключает использование планов хеш-агрегации планировщиком Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_hashjoin

Включает или отключает использование планов хеш-соединения планировщиком Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_indexonlyscan

Включает или отключает использование планов сканирования только по индексу планировщиком Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_indexscan

Включает или отключает использование планов индексного сканирования планировщиком Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_mergejoin

Включает или отключает использование планов соединения слиянием (merge join) планировщиком Postgres. Соединение слиянием основано на сортировке левой и правой таблиц с последующим параллельным сканированием. Оба типа данных должны поддерживать полную упорядоченность, а оператор соединения должен работать только для пар значений на одинаковых позициях в порядке сортировки. На практике это означает поведение как равенство.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

enable_nestloop

Включает или отключает использование планов соединения вложенными циклами планировщиком Postgres. Отключение этого параметра снижает вероятность выбора таких планов планировщиком Postgres за счет добавления значения 10000000000 (1.0e10) к стоимости каждого узла Nested Loop. Обратите внимание, что это не отключает использование планов соединения вложенными циклами совсем, но снижает их использование до минимума, если есть альтернативы.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

enable_seqscan

Включает или отключает использование планов последовательного сканирования планировщиком Postgres. Отключение этого параметра снижает вероятность выбора таких планов планировщиком Postgres за счет добавления значения 10000000000 (1.0e10) к стоимости каждого узла Seq Scan. Обратите внимание, что это не отключает использование планов последовательного сканирования совсем, но снижает их использование до минимума, если есть альтернативы.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_sort

Включает или отключает использование явных шагов сортировки планировщиком Postgres. Отключение этого параметра снижает вероятность выбора таких планов планировщиком Postgres за счет добавления значения 10000000000 (1.0e10) к стоимости каждого узла Sort. Обратите внимание, что это не отключает использование планов с явными сортировками совсем, но снижает их использование до минимума, если есть альтернативы.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

enable_tidscan

Включает или отключает использование планов сканирования по идентификатору кортежа (TID) планировщиком Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

escape_string_warning

При значении on выдается предупреждение при наличии обратного слеша (\) в обычном строковом литерале ('…​'). Для экранирования используйте синтаксис E'…​'.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

explain_memory_verbosity

Задает уровень детализации использования памяти в EXPLAIN ANALYZE. Возможные значения (от меньшего к большему):

  • suppress (по умолчанию) — общая информация по запросу.

  • summary — базовая информация по узлам исполнителя.

  • detail — подробная информация по узлам исполнителя.

  • debug — отладочная информация по использованию памяти запросом.

Диапазон значений Значение по умолчанию Область определения Контекст

suppress
summary
detail
debug

suppress

master

user

extra_float_digits

Корректирует количество отображаемых цифр для чисел с плавающей точкой, включая float4, float8 и геометрические типы данных. Значение параметра добавляется к стандартному количеству цифр. Можно установить до 3 для добавления значимых цифр — полезно для дампов float-данных, требующих точного восстановления. Отрицательное значение уменьшает количество цифр.

Диапазон значений Значение по умолчанию Область определения Контекст

integer -15 — 3

0

master

user

from_collapse_limit

Планировщик Postgres объединяет подзапросы с внешним запросом, если итоговый список FROM не превышает это количество элементов. Меньшие значения сокращают время планирования, но могут дать худшие планы запросов.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

20

master

user

gp_adjust_selectivity_for_outerjoins

Включает селективность проверок NULL для внешних соединений.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_appendonly_compaction_threshold

Задает пороговое соотношение (в процентах) скрытых строк к общим строкам, при котором запускается уплотнение (compaction) файлов сегмента при VACUUM без опции FULL ("ленивый" вакуум). Если соотношение скрытых строк в файле сегмента меньше порога, уплотнение не выполняется и выводится сообщение в журнал.

Диапазон значений Значение по умолчанию Область определения Контекст

integer (%)

10

master

user

gp_autostats_allow_nonowner

Определяет, может ли Greengage DB запускать автоматический сбор статистики при изменении таблицы не владельцем.

По умолчанию false: Greengage DB не запускает автоматический сбор статистики для таблиц, измененных не владельцем.

При true Greengage DB также запускает автоматический сбор статистики, когда:

  • gp_autostats_mode=on_change и таблицу изменяет не-владелец.

  • gp_autostats_mode=on_no_stats и первый INSERT или COPY в таблицу выполняет не-владелец.

Изменяется только суперпользователем.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

superuser

gp_autostats_mode

Задает режим запуска автоматического сбора статистики с помощью ANALYZE. Значение on_no_stats запускает сбор при CREATE TABLE AS SELECT, INSERT и COPY на таблицах без существующей статистики.

Значение on_change запускает сбор только при превышении порога строк gp_autostats_on_change_threshold. Операции, при которых сбор статистики запускается со значением on_change: CREATE TABLE AS SELECT, UPDATE, DELETE, INSERT, COPY.

По умолчанию on_no_stats.

ПРИМЕЧАНИЕ

Для партиционированных таблиц автоматический сбор статистики не запускается при вставке данных из родительской таблицы партиции. Автоматический сбор запускается при прямой вставке в конечную партицию (где хранятся данные). Статистика собирается только для конечной партиции.

Диапазон значений Значение по умолчанию Область определения Контекст

none
on_change
on_no_stats

on_no_stats

master

user

gp_autostats_mode_in_functions

Задает режим запуска автоматического сбора статистики с помощью ANALYZE для операторов в функциях на процедурных языках. Значение none отключает сбор. Значение on_no_stats запускает сбор при использовании CREATE TABLE AS SELECT, INSERT и COPY в функциях на таблицах без статистики.

Значение on_change запускает сбор только при превышении порога строк gp_autostats_on_change_threshold. Операции, при которых сбор статистики запускается со значением on_change: CREATE TABLE AS SELECT, UPDATE, DELETE, INSERT, COPY.

Диапазон значений Значение по умолчанию Область определения Контекст

none
on_change
on_no_stats

none

master

user

gp_autostats_on_change_threshold

Задает порог автоматического сбора статистики при значении gp_autostats_mode on_change. При превышении количества затронутых строк добавляется ANALYZE и собирается статистика для таблицы.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

2147483647

master

user

gp_cached_segworkers_threshold

При запуске сессии и запроса в Greengage DB система создает группы (gang) рабочих процессов на каждом сегменте для его выполнения. После завершения работы рабочие процессы сегментов уничтожаются, кроме кешируемого количества, задаваемого этим параметром. Меньшее значение экономит ресурсы сегмент-хостов, большее — улучшает производительность для пользователей с множеством сложных запросов подряд.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

5

master

user

gp_command_count

Показывает количество команд, полученных мастером от клиента. Имейте в виду, что одна SQL-команда может содержать несколько внутренних команд; при этом счетчик увеличивается соответственно более чем на один. Счетчик общий для всех сегментных процессов, работающих с командой.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

 — 

read only

internal

gp_connection_send_timeout

Тайм-аут отправки данных не отвечающим клиентам Greengage DB во время обработки запроса. 0 отключает тайм-аут, Greengage DB ждет бесконечно. При достижении тайм-аута запрос отменяется с сообщением:

Could not send data to client: Connection timed out.
Диапазон значений Значение по умолчанию Область определения Контекст

число секунд

3600 (1 час)

master

sighup

gp_contentid

Локальный ID содержимого сегмента:

  • -1 для мастера;

  • 0..N-1 для сегментов.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

 — 

read only

postmaster

gp_count_host_segments_using_address

По умолчанию (off) Greengage DB вычисляет выделение памяти для ресурсных групп по gp_segment_configuration.hostname. При значении on для вычисления памяти сегментов используется gp_segment_configuration.address.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

postmaster

gp_create_table_random_default_distribution

Контролирует создание таблицы Greengage DB командой CREATE TABLE или CREATE TABLE AS без выражения DISTRIBUTED BY.

Для CREATE TABLE при значении off (по умолчанию) без DISTRIBUTED BY Greengage DB выбирает ключ распределения следующим образом:

  • При указании LIKE или INHERITS копируется ключ распределения из источника или родителя.

  • При указании ограничений PRIMARY KEY или UNIQUE выбирается наибольшее подмножество ключевых столбцов.

  • Без ограничений и выражений — первый подходящий столбец. Геометрические и пользовательские типы не могут использоваться в ключах распределения.

При значении параметра on без указания DISTRIBUTED BY:

  • Без PRIMARY KEY и UNIQUE — случайное распределение (DISTRIBUTED RANDOMLY). Случайное распределение используется даже при указании LIKE или INHERITS.

  • При указании PRIMARY KEY или UNIQUE выражение DISTRIBUTED BY тоже должно быть указано. В противном случае команда завершается с ошибкой.

Для CREATE TABLE AS без указания распределения:

  • Если таблицу создает планировщик Postgres и значение параметра off — распределение определяется командой.

  • Если таблицу создает планировщик Postgres и значение параметра on — используется случайное распределение.

  • Если таблицу создает планировщик GPORCA — используется случайное распределение. Значение параметра не влияет.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_dbid

Локальный DBID содержимого сегмента.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

 — 

read only

postmaster

gp_debug_linger

Количество секунд задержки процесса Greengage DB после фатальной внутренней ошибки.

Диапазон значений Значение по умолчанию Область определения Контекст

Временное значение (число и единица)

0

master

user

gp_default_storage_options

Задает значения по умолчанию для опций хранения таблицы при создании с помощью команды CREATE TABLE:

  • appendoptimized

    ПРИМЕЧАНИЕ

    Используйте синтаксис appendoptimized=value для указания оптимизированной для добавления модели хранения. appendoptimized — псевдоним устаревшей опции appendonly. Greengage DB сохраняет appendonly в каталоге и показывает его при выводе опций хранения оптимизированных для добавления таблиц.

  • blocksize

  • checksum

  • compresstype

  • compresslevel

  • orientation

Укажите несколько значений опций хранения через запятую.

Можно задавать опции хранения этим параметром вместо указания в выражении WITH команды CREATE TABLE. Опции, указанные в CREATE TABLE, имеют приоритет над значениями параметра.

Не все комбинации опций хранения допустимы. При недопустимых опциях возвращается ошибка. См. описание команды CREATE TABLE для информации об опциях хранения таблицы.

Значения по умолчанию можно задать для базы данных и пользователя. При задании параметра на разных уровнях используется следующий порядок приоритета (от высшего к низшему), когда пользователь подключается к базе данных и создает таблицы:

  1. Значения, указанные в команде CREATE TABLE с выражением WITH или ENCODING.

  2. Значение gp_default_storage_options, заданное для пользователя командой ALTER ROLE …​ SET.

  3. Значение gp_default_storage_options, заданное для базы командой ALTER DATABASE …​ SET.

  4. Значение gp_default_storage_options системы Greengage DB, заданное утилитой gpconfig.

Значение параметра не кумулятивно. Например, если параметр задает appendoptimized и compresstype для базы, а пользователь задает orientation, то значения базы для appendoptimized и compresstype игнорируются.

Этот пример команды ALTER DATABASE задает по умолчанию orientation и compresstype для базы mytest:

ALTER DATABASE mytest SET gp_default_storage_options = 'orientation=column, compresstype=rle_type';

Для создания AO-таблицы с колоночным хранением и сжатием RLE в базе mytest пользователю достаточно указать appendoptimized=TRUE в WITH.

Этот пример команды утилиты gpconfig задает опции хранения по умолчанию для системы Greengage DB. При указании нескольких опций значение должно быть в одинарных кавычках.

$ gpconfig -c 'gp_default_storage_options' -v 'appendoptimized=true, orientation=column'

Этот пример команды gpconfig показывает значение параметра. Значение параметра должно быть одинаковым на мастере Greengage DB и всех сегментах.

$ gpconfig -s 'gp_default_storage_options'
Диапазон значений Значение по умолчанию Область определения Контекст

appendoptimized=TRUE | FALSE

blocksize=8192..2097152

checksum=TRUE | FALSE

compresstype=ZLIB | ZSTD | RLE_TYPE | NONE

compresslevel=0..19

orientation=ROW | COLUMN

appendoptimized=FALSE

blocksize=32768

checksum=TRUE

compresstype=none

compresslevel=0

orientation=ROW

master

user

gp_dispatch_keepalives_count

Максимальное количество повторных отправок TCP keepalive-сообщений от диспетчера запросов (Query Dispatcher, QD) к исполнителю запросов (Query Executor, QE). Контролирует количество последовательно потерянных сообщений до признания соединения между QD и QE потерянным.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 127

0 (системное по умолчанию)

master

postmaster

gp_dispatch_keepalives_idle

Время в секундах между отправками TCP keepalive-сообщений от диспетчера запросов к исполнителю запросов.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 32767

0 (системное по умолчанию)

master

postmaster

gp_dispatch_keepalives_interval

Интервал в секундах между повторами (retransmit) TCP keepalive-сообщений от диспетчера запросов к исполнителю запросов.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 32767

0 (системное по умолчанию)

master

postmaster

gp_dtx_recovery_interval

Интервал в секундах, с которым процесс восстановления распределенной транзакции (DTX) проверяет неподтвержденные и незавершенные транзакции. Используется для очистки брошенных транзакций.

Диапазон значений Значение по умолчанию Область определения Контекст

5 — 3600

60

master

sighup

gp_dtx_recovery_prepared_period

Временной порог (в секундах) для обнаружения потенциально брошенных транзакций процессом восстановления DTX. Если подготовленная транзакция не подтверждена или отменена за это время, она подлежит восстановлению.

Диапазон значений Значение по умолчанию Область определения Контекст

5 — 3600

120

master

sighup

gp_dynamic_partition_pruning

Включает планы, которые могут динамически исключать сканирование партиций.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_agg_distinct

Включает или отключает двухфазную агрегацию для вычисления одного агрегата с DISTINCT. Применяется только к подзапросам с одной функцией агрегата с DISTINCT.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_agg_distinct_pruning

Включает или отключает трехфазную агрегацию и соединение для агрегатов с DISTINCT. Применяется к подзапросам с одним или более агрегатами с DISTINCT.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_direct_dispatch

Включает или отключает прямую отправку целевых планов для запросов, которые обращаются к данным на одном сегменте. При значении on запросы к строкам одного сегмента отправляются только на этот сегмент (а не на все сегменты). Значительно сокращает время ответа за счет исключения использования интерконнекта. При включении увеличивает использование CPU на мастере.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_exchange_default_partition

Управляет доступностью выражения EXCHANGE DEFAULT PARTITION для ALTER TABLE. По умолчанию off. В этом случае выражение недоступно, команда ALTER TABLE выдает ошибку при его указании.

При значении on Greengage DB выдает предупреждение о возможных некорректных результатах из-за некорректных данных в партиции по умолчанию.

ВНИМАНИЕ

Перед обменом партиции по умолчанию убедитесь, что данные в таблице для обмена — будущей партиции по умолчанию — корректны. Данные не должны содержать значения, допустимые в других конечных партициях. Иначе запросы к таблице с новой партицией по умолчанию, использующие GPORCA, могут вернуть некорректные результаты.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_enable_fast_sri

При значении on планировщик Postgres планирует вставки единичных строк напрямую в нужный сегмент (без перемещения). Значительно улучшает производительность вставок одной строки.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_global_deadlock_detector

Контролирует включение глобального детектора взаимных блокировок (Global Deadlock Detector) Greengage DB для одновременных UPDATE и DELETE на heap-таблицах. По умолчанию off — глобальный детектор выключен. В этом случае Greengage DB выполняет операции вставки и удаления на heap-таблицах последовательно.

При включении глобального детектора взаимных блокировок разрешаются параллельные обновления, детектор определяет взаимоблокировки и прерывает их, отменяя процессы, выполняющие самые новые транзакции.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

postmaster

gp_enable_gpperfmon

Включает или отключает агенты сбора данных для базы gpperfmon.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

postmaster

gp_enable_groupext_distinct_gather

Включает или отключает сбор данных на один узел для вычисления агрегатов с DISTINCT в запросах группировки расширения. При включении этого параметра и gp_enable_groupext_distinct_pruning планировщик Postgres выбирает план с меньшей стоимостью.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_groupext_distinct_pruning

Включает или отключает трехфазную агрегацию и соединения для вычисления агрегатов с DISTINCT в запросах группировки расширения. Обычно генерирует план с меньшей стоимостью, предпочтительный для планировщика Postgres.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_minmax_optimization

Включает использование планировщиком индексных сканирований с лимитом для оптимизации функций MIN() и MAX() на индексированных столбцах.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_multiphase_agg

Включает или отключает использование двух- и трехфазных параллельных планов агрегации планировщиком Postgres. Применяется к любым подзапросам с агрегацией. При off отключаются gp_enable_agg_distinct и gp_enable_agg_distinct_pruning.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_predicate_propagation

При включении планировщик Postgres применяет предикаты запроса к обеим таблицам при соединении по ключу распределения. Фильтрация обеих таблиц до соединения (когда она возможна) более эффективна.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_preunique

Включает двухфазное удаление дубликатов для SELECT DISTINCT (не SELECT COUNT(DISTINCT)). При включении добавляет дополнительный SORT DISTINCT перед перемещением. В случаях, когда это значительно уменьшает число строк, дополнительный SORT DISTINCT дешевле передачи строк по интерконнекту.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_query_metrics

Включает сбор метрик запросов. При включении Greengage DB собирает метрики во время выполнения запроса. По умолчанию off.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

postmaster

gp_enable_relsize_collection

Включает использование планировщиками GPORCA и Postgres оценочного размера таблицы (pg_relation_size()), если для нее нет статистики. По умолчанию при отсутствии статистики используется оценка числа строк по умолчанию. Такое поведение улучшает время оптимизации и снижает нагрузку на ресурсные очереди, но может дать неоптимальные планы.

Параметр игнорируется для корневой партиции партиционированной таблицы. При включенном GPORCA и отсутствии статистики корневой партиции всегда используется значение по умолчанию. Используйте ANALYZE ROOTPARTITION для сбора статистики корневой партиции. См. Сбор статистики с помощью ANALYZE.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_enable_sort_distinct

Включает удаление дубликатов во время сортировки.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_enable_sort_limit

Включает выполнение операции LIMIT во время сортировки. Эффективнее при необходимости получения первых limit_number строк.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_external_enable_exec

Включает или отключает внешние таблицы, выполняющие команды ОС или скрипты на сегмент-хостах (CREATE EXTERNAL TABLE EXECUTE). Необходимо при использовании gpperfmon или MapReduce.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

postmaster

gp_external_enable_filter_pushdown

Включает pushdown фильтров при чтении из внешних таблиц. При невозможности pushdown запрос выполняется без фильтрации на уровне источника данных. Фильтры применяются к результату внутри Greengage DB. Подробнее о внешних таблицах см. в статье Обзор внешних таблиц.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_external_max_segs

Задает количество сегментов для сканирования данных внешних таблиц. Предотвращает перегрузку системы процессами сканирования и недостаток ресурсов для параллельных операций. Применяется только к внешним таблицам, использующим протокол gpfdist://.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

64

master

user

gp_fts_mark_mirror_down_grace_period

Интервал в секундах для переподключения отключенного зеркала перед тем, как процесс обнаружения сбоев (ftsprobe) отметит его как вышедшее из строя (down).

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 3600

30

master

sighup

gp_fts_probe_interval

Задает интервал опроса процесса обнаружения сбоев (ftsprobe). Время обнаружения сбоя сегмента примерно равно этому значению.

Диапазон значений Значение по умолчанию Область определения Контекст

10 — 3600s

1min

master

sighup

gp_fts_probe_retries

Количество попыток подключения к сегменту процессом ftsprobe перед сообщением о сбое.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

5

master

sighup

gp_fts_probe_timeout

Допустимый тайм-аут для подключения к сегменту процессом ftsprobe до того, как он будет отмечен потерянным (down).

Диапазон значений Значение по умолчанию Область определения Контекст

10 — 3600s

20s

master

sighup

gp_fts_replication_attempt_count

Максимальное количество попыток установления репликационного соединения между основным сегментом и зеркалом. При превышении этого лимита ftsprobe прекращает попытки и отмечает зеркало как вышедшее из строя (down).

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 100

10

master

sighup

gp_global_deadlock_detector_period

Задает интервал выполнения фонового процесса глобального детектора взаимных блокировок (Global Deadlock Detector).

Диапазон значений Значение по умолчанию Область определения Контекст

5 — INT_MAX секунд

2min

master

sighup

gp_gpperfmon_send_interval

Задает частоту отправки информации о выполнении запросов от серверных процессов Greengage DB агентам сбора данных для базы gpperfmon. Операции запросов за интервал отправляются по UDP агентам мониторинга сегментов. При чрезмерной потере UDP-пакетов в долгих и сложных запросах увеличьте значение.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 3600

1

master

superuser

gp_hashjoin_tuples_per_bucket

Задает целевую плотность хеш-таблицы для операций хеш-соединения. Меньшее значение создает большие хеш-таблицы, повышая производительность соединения.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

5

master

user

gp_initial_bad_row_limit

При значении n Greengage DB прекращает обработку входных строк при импорте через COPY или из внешней таблицы, если первые n строк содержат ошибки формата. Если среди первых n строк есть корректная, обработка продолжается.

0 отключает лимит.

Выражение SEGMENT REJECT LIMIT в COPY или определении внешней таблицы также ограничивает число отклоненных строк.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >=0

1000

master

user

gp_instrument_shmem_size

Размер общей памяти для метрик запросов, в килобайтах. По умолчанию 5120, максимум 131072. Если при запуске значение gp_enable_query_metrics установлено в on, Greengage DB выделяет общую память для метрик. Память делится на заголовок и набор слотов. Количество слотов зависит от числа параллельных запросов и узлов плана выполнения. Значение по умолчанию 5120 рассчитано на 250 параллельных запросов по 120 узлов. При значении gp_enable_query_metrics off или исчерпании слотов метрики хранятся в локальной памяти.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 131072

5120

master

postmaster

gp_interconnect_address_type

Задает стратегию привязки адресов для интерконнекта между сокетами сегмент-хостов. Возможные значения: unicast или wildcard (по умолчанию).

  • При значении unicast — использует gp_segment_configuration.address для привязки адресов. Это снижает использование портов и исключает использование нежелательных (потенциально медленных) сетевых интерфейсов интерконнектом.

  • При значении wildcard — Greengage DB может использовать любой доступный сетевой интерфейс, подходящий по правилам маршрутизации.

ПРИМЕЧАНИЕ

В некоторых случаях связь между сегментами через unicast может быть невозможна. Например, при нахождении сегментов в разных подсетях или блокирующих правилах маршрутизации. В таких случаях используйте gp_interconnect_address_type=wildcard.

Диапазон значений Значение по умолчанию Область определения Контекст

wildcard

unicast

wildcard

local

backend

gp_interconnect_cursor_ic_table_size

Размер таблицы истории курсоров для UDP-интерконнекта. Увеличьте при зависании пользовательских функций с множеством параллельных курсоров. По умолчанию 128.

Диапазон значений Значение по умолчанию Область определения Контекст

128 — 102400

128

master

user

gp_interconnect_debug_retry_interval

Интервал (в секундах) отладочного логирования интерконнекта при значении gp_log_interconnect DEBUG. По умолчанию 10 секунд.

Сообщения содержат информацию о связи между рабочими процессами сегментов Greengage DB. Эта информация может использоваться для отладки сетевых проблем.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 4096

10

master

user

gp_interconnect_fc_method

Метод управления потоком для UDPIFC-интерконнекта Greengage DB:

  • На основе емкости (capacity-based) — отправители не посылают пакеты при отсутствии емкости у получателей.

  • На основе потерь (loss-based) — использует управление на основе емкости с дополнительной настройкой скорости по потерям пакетов.

Диапазон значений Значение по умолчанию Область определения Контекст

CAPACITY
LOSS

LOSS

master

user

gp_interconnect_min_retries_before_timeout

Минимальное количество повторов перед сообщением о тайм-ауте передачи в интерконнекте.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 4096

100

master

user

gp_interconnect_min_rto

Задает минимальный тайм-аут повторной передачи (Retransmission Timeout, RTO) для интерконнекта на основе UDP, в миллисекундах.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 1000

20

master

user

gp_interconnect_proxy_addresses

Задает прокси-порты для Greengage DB при значении параметра gp_interconnect_type proxy. В остальных случаях игнорируется. По умолчанию пустая строка ("").

При gp_interconnect_type=proxy укажите порты для мастера, резервного мастера и всех основных и зеркальных сегментов в формате:

<db_id>:<cont_id>:<seg_address>:<port>[, ... ]

Первые три поля (db_id, cont_id, seg_address) можно взять из таблицы gp_segment_configuration. Четвертое — прокси-порт для мастера или сегмента.

  • <db_id> — столбец dbid.

  • <cont_id> — столбец content.

  • <seg_address> — IP-адрес или хост из столбца address.

  • <port> — выбранный вами TCP/IP-порт прокси для сегмента.

ВАЖНО

При изменении IP хоста сегмента в процессе работы выполните gpstop -U для перезагрузки gp_interconnect_proxy_addresses.

Значение нужно указывать в одинарных кавычках. Следующий пример вызова gpconfig показывает значение для мастера и одного сегмента:

$ gpconfig --skipvalidation -c gp_interconnect_proxy_addresses -v "'1:-1:192.168.180.50:35432,2:0:192.168.180.54:35000'"

Пример настройки см. в статье Настройка прокси для интерконнекта.

Диапазон значений Значение по умолчанию Область определения Контекст

string (максимальная длина — 16384 байта)

 — 

local

sighup

gp_interconnect_queue_depth

Количество данных в очереди получателя UDPIFC-интерконнекта на каждом узле (при отсутствии доступного места данные будут утеряны, и отправитель должен переслать их заново). Увеличение значения повышает использование памяти, но может улучшить производительность. Разумно использовать значения от 1 до 10. При перекосе данных рекомендуется увеличить значение. Значительное увеличение повышает общее потребление памяти.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 2048

4

master

user

gp_interconnect_setup_timeout

Время ожидания (в секундах) завершения настройки интерконнекта перед тайм-аутом.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 7200

7200 (2 часа)

master

user

gp_interconnect_snd_queue_depth

Количество данных в очереди отправителя UDPIFC-интерконнекта на каждом узле. Увеличение повышает потребление памяти, но может улучшить производительность. Разумно использовать значения от 1 до 4. Значительное увеличение повышает общее потребление памяти.

Диапазон значений Значение по умолчанию Область определения Контекст

1  — 4096

2

master

user

gp_interconnect_tcp_listener_backlog

Размер очереди прослушивания для TCP-сокетов интерконнекта. Рекомендуется настраивать вместе с параметрами ядра net.core.somaxconn и net.ipv4.tcp_max_syn_backlog.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 65535

128

master

user

gp_interconnect_timer_checking_period

Период проверки таймера для UDP-интерконнекта, в миллисекундах.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 100

20

master

user

gp_interconnect_timer_period

Период таймера для UDP-интерконнекта, в миллисекундах.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 100

5

master

user

gp_interconnect_transmit_timeout

Время ожидания (в секундах) завершения сетевой передачи трафика интерконнекта перед тайм-аутом.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 7200

3600 (1 час)

master

user

gp_interconnect_type

Задает сетевой протокол для интерконнекта Greengage DB.

UDPIFC (по умолчанию) — UDP с управлением потоком для интерконнекта. Метод управления потоком задается параметром gp_interconnect_fc_method.

При использовании TCP для интерконнекта лимит количества сегментов — 1000 или меньше при сложных запросах с большим количеством слайсов.

PROXY подразумевает использование протокола TCP и прокси для связи мастера с сегментами и между сегментами при выполнении запросов. При значении PROXY необходимо задать прокси-порты для мастера и сегментов в параметре gp_interconnect_proxy_addresses. Информацию о настройке прокси для интерконнекта Greengage DB см. в статье Настройка прокси для интерконнекта.

Диапазон значений Значение по умолчанию Область определения Контекст

UDPIFC
TCP
PROXY

UDPIFC

local

backend

gp_keep_partition_children_locks

При значении on сохраняет блокировки на всех конечных партициях AO-таблиц, задействованных в запросе, до конца транзакции. Помогает избежать редких проблем видимости при выполнении запросов, например, read beyond eof при параллельном выполнении VACUUM на конечных партициях.

ПРИМЕЧАНИЕ

Включение gp_keep_partition_children_locks удерживает дополнительную блокировку для каждого AO-потомка в каждой иерархии партиций до конца транзакции. Возможно, потребуется увеличить max_locks_per_transaction.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

gp_log_format

Задает формат файлов логов. При использовании административной схемы gp_toolkit файлы логов должны иметь формат CSV.

Диапазон значений Значение по умолчанию Область определения Контекст

csv
text

csv

local

postmaster

gp_log_suboverflow_statements

Контролирует логирование команд, вызывающих переполнение подтранзакций.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

gp_max_local_distributed_cache

Задает максимальное количество записей журнала распределенных транзакций в кеше памяти процесса сегмента.

Записи журнала содержат информацию о состоянии строк, к которым обращается SQL-команда. Эта информация используется для определения видимости строк в MVCC при выполнении параллельных транзакций. Ее сохранение в локальном кеше ускоряет обработку транзакций за счет ускорения определения видимости строк.

Значение по умолчанию оптимально для большинства сред.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

1024

local

postmaster

gp_max_packet_size

Размер блока сериализации кортежей для интерконнекта Greengage DB, в байтах.

ПРИМЕЧАНИЕ

Значение gp_max_packet_size по умолчанию (8192 байта) оптимально для окружений, поддерживающих MTU для jumbo-фреймов. В публичных облаках MTU зависит от провайдера и типа инстанса.

Диапазон значений Значение по умолчанию Область определения Контекст

512 — 65536

8192

master

backend

gp_max_partition_level

Лимит максимального количества уровней в иерархии партиций. По умолчанию 0 — лимит не установлен.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >=0

0 (без лимита)

master

superuser

gp_max_plan_size

Максимальный несжатый размер плана запроса, умноженный на количество Motion-операторов (слайсов) в плане. При превышении этого размера запрос отменяется с ошибкой. Значение 0 означает, что размеры планов не отслеживаются.

Значения можно указать в kB (по умолчанию), MB или GB. Например, значение 200 эквивалентно 200kB. Значение 1GB — 1024MB или 1048576kB.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

0

master

superuser

gp_max_scan_on_shmem

Лимит слотов общей памяти для узлов сканирования на один серверный процесс.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 3072

300

master

postmaster

gp_max_slices

Максимальное количество слайсов (частей плана, выполняемых на сегментах), генерируемых запросом. При превышении этого числа возникает ошибка и запрос не выполняется. По умолчанию 0 — без лимита.

Выполнение запросов с большим числом слайсов снижает производительность. Пример: запрос, включающий UNION или UNION ALL над сложными представлениями. Используйте EXPLAIN ANALYZE для анализа слайсов.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

user

gp_max_system_slices

ПРИМЕЧАНИЕ

Поведение параметра gp_max_system_slices идентично gp_max_slices за исключением того, что для него требуются привилегии суперпользователя. Кроме того, он имеет приоритет над gp_max_slices, если значение gp_max_slices больше gp_max_system_slices.

Максимальное количество слайсов (частей плана, выполняемых на сегментах), генерируемых запросом. При превышении этого числа возникает ошибка и запрос не выполняется. По умолчанию 0 — без лимита.

Выполнение запросов с большим числом слайсов снижает производительность. Пример: запрос, включающий UNION или UNION ALL над сложными представлениями. Используйте EXPLAIN ANALYZE` для анализа слайсов.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

superuser

gp_motion_cost_per_row

Задает оценку затрат планировщика Postgres для оператора Motion (перемещение строк между сегментами), как долю от затрат последовательного чтения страницы. При 0 используется значение в два раза большее, чем cpu_tuple_cost.

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой

0

master

user

gp_print_create_gang_time

При запуске сессии и запроса Greengage DB создает группы (gang) рабочих процессов на сегментах для его выполнения. gp_print_create_gang_time контролирует вывод дополнительной информации о создании этих групп, включая их повторное использование и максимальное и минимальное время подключения к сегменту.

По умолчанию false — дополнительная информация не выводится.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

user

gp_reject_percent_threshold

Для обработки ошибок одной строки в COPY и SELECT внешних таблиц задает количество обработанных строк перед началом расчета SEGMENT REJECT LIMIT <n> PERCENT.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — n

300

master

user

gp_reraise_signal

При включении пытается создать дамп ядра при фатальной ошибке сервера.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

superuser

gp_resgroup_memory_policy

ПРИМЕЧАНИЕ

Параметр gp_resgroup_memory_policy применяется только при управлении ресурсами через ресурсные группы.

Используется ресурсной группой для распределения памяти между операторами запроса.

При значении auto Greengage DB распределяет память по лимитам группы: фиксированный размер для операторов, требующих мало памяти, остаток — требующим много памяти.

При значении eager_free Greengage DB использует память более оптимально за счет перераспределения освобожденной памяти от завершенных операторов на поздние стадии запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

auto
eager_free

eager_free

local

superuser

gp_resource_group_bypass

ПРИМЕЧАНИЕ

Параметр gp_resource_group_bypass применяется только при управлении ресурсами через ресурсные группы.

Включает или отключает соблюдение лимитов параллельных транзакций ресурсных групп. По умолчанию false — лимиты соблюдаются.

Значение true позволяет обходить ограничения на число одновременных транзакций для немедленного запуска запроса. Например, можно установить значение true на уровне сессии для выполнения запроса к системному каталогу.

При значении true запрос выполняется следующим образом:

  • Запрос выполняется внутри ресурсной группы. Назначенная ресурсная группа остается неизменной.

  • Лимит памяти для запроса — 10 МБ. Эта память выделяется из разделяемой памяти ресурсной группы или глобальной разделяемой памяти. Если разделяемой памяти недостаточно для выделения этого количества, запрос не выполняется.

Задается на уровне сессии. Установка в транзакции или функции невозможна.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

local

user

gp_resource_group_bypass_catalog_query

ПРИМЕЧАНИЕ

Параметр gp_resource_group_bypass_catalog_query применяется только при управлении ресурсами через ресурсные группы.

По умолчанию false — лимиты ресурсных групп соблюдаются для запросов к каталогам. В этом случае при максимальном разрешенном количестве транзакций чтение каталогов может блокироваться.

При значении true запросы выводятся из-под лимитов ресурсных групп, если они:

  • Читают только системные каталоги.

  • Содержат в своем тексте только таблицы схемы pg_catalog.

ПРИМЕЧАНИЕ

Если в тексте запроса есть pg_catalog и другие схемы, запрос не выводится из-под лимитов.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

local

user

gp_resource_group_cpu_ceiling_enforcement

Включает режим "жесткого потолка" (ceiling enforcement mode) при распределении CPU ресурсным группам по процентам. При отключении используется эластичный режим (elastic mode). См. Процент CPU: CPU_RATE_LIMIT.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

local

postmaster

gp_resource_group_cpu_limit

ПРИМЕЧАНИЕ

Параметр gp_resource_group_cpu_limit применяется только при управлении ресурсами через ресурсные группы.

Определяет максимальный процент системных CPU-ресурсов для ресурсных групп на каждом сегментном узле Greengage DB.

Диапазон значений Значение по умолчанию Область определения Контекст

0.1 — 1.0

0.9

local

postmaster

gp_resource_group_cpu_priority

Задает приоритет CPU для процессов Greengage DB над процессами, не относящимися к Greengage DB, при включенных ресурсных группах. Например, значение 10 устанавливает соотношение 10:1 в пользу Greengage DB.

ПРИМЕЧАНИЕ

Расчет соотношения применяется только при 100% загрузке CPU машины.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 50

10

local

postmaster

gp_resource_group_enable_recalculate_query_mem

ПРИМЕЧАНИЕ

Параметр gp_resource_group_enable_recalculate_query_mem применяется только при управлении ресурсами через ресурсные группы.

Определяет, пересчитывает ли Greengage DB максимальный объем памяти, доступный одному запросу на сегмент-хосте в ресурсной группе. По умолчанию false — Greengage DB рассчитывает максимальный объем памяти на сегмент-хосте по конфигурации памяти и количеству основных сегментов на мастер-хосте. При значении true Greengage DB пересчитывает максимальный объем памяти на сегмент-хосте по памяти и количеству основных сегментов на этом сегмент-хосте.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

user

gp_resource_group_memory_limit

ПРИМЕЧАНИЕ

Параметр gp_resource_group_memory_limit применяется только при управлении ресурсами через ресурсные группы.

Определяет максимальный процент системной памяти для ресурсных групп на каждом сегментном узле Greengage DB.

ПРИМЕЧАНИЕ

При управлении ресурсами через ресурсные группы память хоста делится поровну между активными основными сегментами. Greengage DB выделяет основным сегментам память в момент, когда им назначается роль основных. Начальное распределение не меняется даже при аварийном переключении на зеркало сегмента. Это может привести к превышению лимита потребления памяти gp_resource_group_memory_limit на хосте.

Например: кластер Greengage DB использует значение gp_resource_group_memory_limit по умолчанию 0.7, и на сегмент-хосте sdw1 работают 4 основных и 4 зеркальных сегмента. Greengage DB выделяет каждому основному сегменту хоста sdw1 (0.7 / 4 = 0.175) общей системной памяти. Если в результате сбоя 2 зеркальных сегмента хоста sdw1 станут основными, все 4 исходных основных сегмента продолжают потреблять свои доли памяти 0.175, и 2 новых основных сегмента получат по (0.7 / 6 = 0.116) памяти. Общее выделение памяти на хосте sdw1 составит 0.7 + (0.116 * 2) = 0.932, что превышает лимит gp_resource_group_memory_limit.

Диапазон значений Значение по умолчанию Область определения Контекст

0.1 — 1.0

0.7

local

postmaster

gp_resource_group_move_timeout

ПРИМЕЧАНИЕ

Параметр gp_resource_group_move_timeout применяется только при управлении ресурсами через ресурсные группы.

Отменяет выполнение функции pg_resgroup_move_query(), которая переносит запросы между ресурсными группами, при ожидании дольше указанного времени в миллисекундах.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 10

30000 (30 секунд)

master

user

gp_resource_group_queuing_timeout

ПРИМЕЧАНИЕ

Параметр gp_resource_group_queuing_timeout применяется только при управлении ресурсами через ресурсные группы.

Отменяет транзакцию в очереди ресурсной группы при ожидании дольше указанного времени в миллисекундах. Лимит применяется к каждой транзакции отдельно. По умолчанию 0 — ожидание может быть бесконечным.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

user

gp_resource_manager

Определяет схему управления ресурсами в кластере Greengage DB: ресурсные группы или ресурсные очереди. По умолчанию используются ресурсные очереди.

Диапазон значений Значение по умолчанию Область определения Контекст

group
queue

queue

local

postmaster

gp_resqueue_memory_policy

ПРИМЕЧАНИЕ

Параметр gp_resqueue_memory_policy применяется только при управлении ресурсами через ресурсные очереди.

Включает функции управления памятью Greengage DB. Алгоритм eager_free использует то, что операторы не работают одновременно. План запроса разделяется на стадии: память каждой стадии освобождается при ее завершении и передается следующей.

При значении auto — использование памяти контролируется через statement_mem и лимиты очередей. При значении none — функции отключены.

Диапазон значений Значение по умолчанию Область определения Контекст

none
auto
eager_free

eager_free

local

superuser

gp_resqueue_priority

ПРИМЕЧАНИЕ

Параметр gp_resqueue_priority применяется только при управлении ресурсами через ресурсные очереди.

Включает или отключает приоритизацию запросов. При отключении существующие настройки приоритета не оцениваются во время выполнения.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

local

postmaster

gp_resqueue_priority_cpucores_per_segment

ПРИМЕЧАНИЕ

Параметр gp_resqueue_priority_cpucores_per_segment применяется только при управлении ресурсами через ресурсные очереди.

Задает количество единиц CPU на каждый сегмент на сегмент-хосте. При использовании зеркалирования сегментов используйте для расчета количество основных сегментов на хосте. Учитывайте все доступные ОС ядра, включая виртуальные.

Например, в кластере с 10-ядерными сегмент-хостами с 4 основными сегментами на каждом установите значение 2.5 (10/4). Для основного и резервного мастеров выделите все доступные на их хостах ядра (10).

Неверные настройки приводят к недоиспользованию CPU или некорректной приоритизации.

Диапазон значений Значение по умолчанию Область определения Контекст

0.1 — 512.0

4

local

postmaster

gp_resqueue_priority_sweeper_interval

ПРИМЕЧАНИЕ

Параметр gp_resqueue_priority_sweeper_interval применяется только при управлении ресурсами через ресурсные очереди.

Интервал (в миллисекундах) оценки текущего использования CPU процессом очистки (sweeper). При активации нового оператора приоритет оценивается на следующем интервале.

Диапазон значений Значение по умолчанию Область определения Контекст

500 — 15000

1000 (1 секунда)

local

postmaster

gp_role

Роль серверного процесса: DISPATCH для мастера, EXECUTE для сегментов.

Диапазон значений Значение по умолчанию Область определения Контекст

DISPATCH
EXECUTE
UTILITY

DISPATCH (мастер)
EXECUTE (сегмент)

read only

superuser

gp_safefswritesize

Минимальный размер безопасной записи для AO-таблиц в экспериментальных (non-mature) файловых системах. При значении больше нуля данные AO-таблиц дополняются во время записи до этого размера для защиты от повреждений из-за ошибок файловой системы. Каждая экспериментальная файловая система имеет известный безопасный размер; его необходимо указать в параметре при работе на этой системе. Обычно это размер, кратный extent файловой системы; например, Linux ext3 — 4096 байт, поэтому обычно используется значение 32768.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

0

local

backend

gp_segment_connect_timeout

Время ожидания подключения интерконнекта к сегменту до тайм-аута. Контролирует тайм-ауты между мастером и основными сегментами, а также основными и зеркальными сегментами при репликации.

Диапазон значений Значение по умолчанию Область определения Контекст

Временное значение (число и единица)

3min

local

user

gp_segments_for_planner

Количество основных сегментов, предполагаемых планировщиком Postgres для оценок затрат и размеров. При 0 — фактическое количество. Это значение влияет на оценки числа пересылаемых строк в Motion-операторах.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — n

0

master

user

gp_server_version

Версия сервера строкой. Может содержать текстовый модификатор, дополняющий числовую версию, например beta.

Диапазон значений Значение по умолчанию Область определения Контекст

Версия строкой. Пример: 6.29.0

Фактическая версия

read only

internal

gp_server_version_num

Версия сервера в виде целого числа. Это число гарантированно возрастает и может использоваться для сравнений. Мажорная версия выводится как есть, а минорная и патч — с дополнением нулями до двух цифр.

Диапазон значений Значение по умолчанию Область определения Контекст

Mmmpp, где M — мажорная версия, mm — минорная с дополнением, pp — патч-версия с дополнением. Пример: 60000

Фактическая версия

read only

internal

gp_session_id

Системный ID сессии клиента. Начинается с 1 при первом запуске мастера.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

 — 

read only

backend

gp_set_proc_affinity

При включении серверный процесс (postmaster) привязывается к CPU при запуске.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

postmaster

gp_statistics_pullup_from_child_partition

Включает использование статистики дочерних таблиц планировщиком Postgres при планировании запросов к родительской таблице.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_statistics_use_fkeys

При включении планировщик Postgres использует статистику ссылочного столбца родительской таблицы для внешнего ключа вместо собственной статистики столбца.

ПРИМЕЧАНИЕ

Параметр gp_statistics_use_fkeys является устаревшим и не рекомендуется к использованию.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

gp_track_pending_delete

Включает расширенное отслеживание ожидающих удалений для предотвращения накопления "брошенных" (orphaned) файлов. При отключении отключается хранение relation-узлов в shmem, дамп в WAL и удаление файлов при восстановлении.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

postmaster

gp_vmem_idle_resource_timeout

При простое сессии дольше указанного времени сессия освобождает системные ресурсы (общую память), но остается подключенной. Увеличивает число возможных параллельных подключений.

Диапазон значений Значение по умолчанию Область определения Контекст

Временное значение (число и единица)

18s

master

user

gp_vmem_protect_limit

ПРИМЕЧАНИЕ

Параметр gp_vmem_protect_limit применяется только при управлении ресурсами через ресурсные очереди.

Задает объем памяти (в мегабайтах), который могут потреблять все процессы postgres активного сегмента. Если запрос приводит к превышению этого лимита, память не выделяется и запрос не выполняется. Это локальный параметр — он задается для всех сегментов (основных и зеркальных). В значении параметра указывайте только число, например 4096 для установки лимита 4096 МБ.

Для предотвращения избыточного выделения памяти используйте расчет, показанный ниже.

Сначала рассчитайте gp_vmem — доступную память Greengage DB на хосте:

  • Если общая память системы меньше 256 ГБ, используйте формулу:

    <gp_vmem> = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.7
  • Если общая память системы больше или равна 256 ГБ, используйте формулу:

    <gp_vmem> = ((SWAP + RAM) – (7.5GB + 0.05 * RAM)) / 1.17

где SWAP — доступный размер файла подкачки и RAM — память хоста в гигабайтах.

Далее рассчитайте max_acting_primary_segments. Это максимальное число основных сегментов, которые могут работать на хосте в случае, когда зеркальные сегменты активированы из-за сбоя. Например, при расположении на 4 хостах с 8 основными сегментами на каждом сбой одного хоста приводит к активации 2-3 зеркал на каждом из оставшихся хостов. Значение max_acting_primary_segments в этом случае равно 11 (8 основных сегментов и 3 активированных зеркальных).

gp_vmem_protect_limit рассчитывается по формуле ниже. Значение нужно перевести в мегабайты.

gp_vmem_protect_limit = <gp_vmem> / <acting_primary_segments>

При ожидании большого количества spill-файлов во время работы, используйте расчет с учетом их количества:

  • Если общая память системы меньше 256 ГБ, используйте формулу:

    <gp_vmem> = ((<SWAP> + <RAM>) – (7.5GB + 0.05 * <RAM> - (300KB * <total_#_workfiles>))) / 1.7
  • Если общая память системы больше или равна 256 ГБ, используйте формулу:

    <gp_vmem> = ((<SWAP> + <RAM>) – (7.5GB + 0.05 * <RAM> - (300KB * <total_#_workfiles>))) / 1.17

Подробная информация о мониторинге и управлении spill-файлами приведена в статье Управление spill-файлами.

На основе значения gp_vmem можно рассчитать значение параметра ядра ОС vm.overcommit_ratio. Этот параметр устанавливается на каждом хосте Greengage DB.

vm.overcommit_ratio = (<RAM> - (0.026 * <gp_vmem>)) / <RAM>
ПРИМЕЧАНИЕ

По умолчанию в Red Hat Enterprise Linux значение vm.overcommit_ratio равно 50. Инструкции по настройке этого параметра см. в статье Параметры ядра.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

8192

local

postmaster

gp_vmem_protect_segworker_cache_limit

При потреблении процессом-исполнителем больше указанного объема памяти (в МБ) процесс не кешируется для следующих запросов. В системах с множеством подключений или простаивающих процессов следует уменьшить это значение для освобождения памяти сегментов. Локальный параметр.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

500

local

postmaster

gp_workfile_compression

Определяет, сжимаются ли временные spill-файлы, создаваемые на дисках операциями хеш-агрегации или хеш-соединения.

При использовании в кластере SATA-дисков сжатие снижает IO-нагрузку на диск.

Подробнее о сжатии spill-файлов см. в разделе Сжатие.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_workfile_compression_overhead_limit

Лимит дополнительной памяти для всех сжатых spill-файлов из одного набора, в килобайтах. При достижении лимита последующие файлы не сжимаются. 0 отключает лимит.

См. также Сжатие.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >=0

2097152 (2 GB)

master

user

gp_workfile_limit_files_per_query

Максимальное количество временных spill-файлов на запрос на сегмент. Файлы создаются при исчерпании доступной запросу памяти. При превышении лимита запрос завершается.

0 — без ограничений.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

100000

master

user

gp_workfile_limit_per_query

Максимальный размер диска для временных spill-файлов одного запроса на каждом сегменте, в килобайтах. По умолчанию 0 — лимит не применяется.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

0

master

user

gp_workfile_limit_per_segment

Максимальный общий размер диска для всех выполняемых запросов на spill-файлы на каждом сегменте, в килобайтах. По умолчанию 0 — лимит не применяется.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

0

local

postmaster

gpfdist_retry_timeout

Время ожидания (в секундах) до возврата ошибки при попытке подключения или записи на сервер gpfdist, а gpfdist не отвечает. По умолчанию 300 (5 минут). 0 отключает тайм-аут.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

300

local

user

gpperfmon_port

Задает номер порта для gpperfmon.

Диапазон значений Значение по умолчанию Область определения Контекст

1024 — 65535

8888

master

postmaster

ignore_checksum_failure

Действует только при включенном data_checksums.

Greengage DB использует контрольные суммы для предотвращения загрузки поврежденных данных из файловой системы в память СУБД.

По умолчанию при ошибке проверки контрольных сумм во время чтения страницы heap-данных генерируется ошибка, и страница не загружается в память. При значении on при ошибке проверки контрольных сумм генерируется предупреждение, страница загружается. Если после этого страница обновляется, она сохраняется на диск и реплицируется на соответствующий зеркальный сегмент. При поврежденном заголовке страницы ошибка генерируется независимо от значения параметра.

ВНИМАНИЕ

Включение ignore_checksum_failure может распространить или скрыть повреждение данных или вызвать серьезные проблемы. Однако при неповрежденном заголовке позволяет игнорировать ошибку и восстановить неповрежденные кортежи.

По умолчанию off, изменяется только суперпользователем.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

superuser

integer_datetimes

Показывает, собран ли PostgreSQL с поддержкой 64-битных целочисленных дат/времени.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

read only

internal

IntervalStyle

Задает формат вывода значений интервалов:

  • sql_standard — вывод соответствует стандарту SQL для интервальных литералов.

  • postgres — вывод соответствует PostgreSQL до 8.4 при значении DateStyle ISO.

  • postgres_verbose — вывод соответствует PostgreSQL до 8.4 при значениях DateStyle, отличных от ISO.

  • iso_8601 — вывод соответствует формату ISO 8601 (раздел 4.4.3.2).

Подробнее см. в разделе Date/Time Types документации PostgreSQL.

Диапазон значений Значение по умолчанию Область определения Контекст

postgres
postgres_verbose
sql_standard
iso_8601

postgres

master

user

join_collapse_limit

Планировщик Postgres переписывает явные выражения JOIN в списки FROM-элементов, если размер итогового возвращаемого списка не превышает это значение. По умолчанию равно from_collapse_limit, что подходит для большинства случаев. Значение 1 запрещает переупорядочивание JOIN. Значения между 1 и from_collapse_limit — компромисс времени планирования и качества плана (более высокие значения приводят к лучшим планам).

Диапазон значений Значение по умолчанию Область определения Контекст

1 — from_collapse_limit

20

master

user

krb_caseins_users

Определяет, обрабатывать ли имена пользователей Kerberos без учета регистра. По умолчанию учитывается регистр (off).

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

sighup

krb_server_keyfile

Задает расположение файла ключа сервера Kerberos.

Диапазон значений Значение по умолчанию Область определения Контекст

путь и имя файла

 — 

master

sighup

lc_collate

Показывает локаль сортировки текстовых данных. Значение определяется при инициализации кластера Greengage DB.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

 — 

read only

internal

lc_ctype

Показывает локаль классификации символов. Значение определяется при инициализации кластера Greengage DB.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

 — 

read only

internal

lc_messages

Задает язык сообщений. Доступны локали, установленные в операционной системе; их можно посмотреть командой locale -a. Значение по умолчанию наследуется от окружения сервера. В некоторых системах категория отсутствует. В этом случае значение параметра ни на что не влияет. Кроме того, возможно отсутствие переводов на выбранный язык. В этом случае сообщения будут выводиться на английском.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

 — 

local

superuser

lc_monetary

Задает локаль форматирования денежных сумм, например, при использовании функций to_char. Доступны локали, установленные в операционной системе; их можно посмотреть командой locale -a. Значение по умолчанию наследуется от окружения сервера.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

 — 

local

user

lc_numeric

Задает локаль форматирования чисел, например, при использовании функций to_char. Доступны локали, установленные в операционной системе; их можно посмотреть командой locale -a. Значение по умолчанию наследуется от окружения сервера.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

 — 

local

user

lc_time

Задает локаль форматирования значений дат и времени.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

 — 

local

user

listen_addresses

Задает TCP/IP-адреса для прослушивания подключений клиентов в виде списка имена хостов или IP-адресов через запятую. Значение * соответствует всем доступным IP-интерфейсам. Пустой список — подключения возможны только через сокеты домена Unix.

Диапазон значений Значение по умолчанию Область определения Контекст

localhost
имена хостов
IP-адреса
* (все IP-интерфейсы)

*

master

postmaster

local_preload_libraries

Список библиотек для загрузки в начале клиентской сессии; разделяется запятыми.

Диапазон значений Значение по умолчанию Область определения Контекст

список библиотек через запятую

 — 

local

backend

lock_timeout

Прерывает команду при ожидании блокировки таблицы, индекса, строки или другого объекта дольше указанного времени в миллисекундах. Лимит применяется к каждой попытке блокировки отдельно. Применяется как к явным запросам блокировок (LOCK TABLE, SELECT FOR UPDATE), так и к неявным блокировкам. При log_min_error_statement=ERROR или ниже прерванная команда логируется. Значение 0 (по умолчанию) отключает мониторинг ожидания блокировок.

В отличие от statement_timeout, срабатывает только при ожидании блокировок. При ненулевом statement_timeout установка такого же или большего значения lock_timeout бессмысленна, поскольку тайм-аут выражения наступит раньше.

Greengage DB использует deadlock_timeout и gp_global_deadlock_detector_period для определения локальных и глобальных взаимоблокировок. Если значение lock_timeout меньше этих тайм-аутов, Greengage DB прервет команду до проверки взаимоблокировок.

ПРИМЕЧАНИЕ

Настройка lock_timeout в postgresql.conf не рекомендуется, так как это повлияет на все сессии.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

user

log_autostats

Логирует информацию об автоматических операциях ANALYZE, связанных с gp_autostats_mode и gp_autostats_on_change_threshold.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

log_autovacuum_min_duration

Задает минимальное время выполнения (в миллисекундах), выше которого действия автоматического вакуумирования (autovacuum) логируются. 0 — логируются все действия. -1 отключает логирование.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= -1

-1

master

sighup

log_checkpoints

Включает логирование контрольных точек и точек перезапуска сервера. Сообщения лога включают статистику: количество записанных буферов и время записи.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

local

sighup

log_connections

Выводит в лог сервера информацию о каждом успешном подключении. Некоторые клиенты, например psql, могут подключаться дважды при проверке необходимости пароля, поэтому дублирование сообщений о подключении не всегда означает проблему.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

backend

log_disconnections

Выводит в лог сервера строку при завершении клиентской сессии с указанием длительности сессии.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

backend

log_dispatch_stats

При значении on добавляет в лог подробное сообщение о передаче оператора.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

superuser

log_duration

Логирует длительность каждого завершенного оператора, удовлетворяющего log_statement.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

log_error_verbosity

Контролирует детальность сообщений в журнале сервера.

Диапазон значений Значение по умолчанию Область определения Контекст

TERSE
DEFAULT
VERBOSE

DEFAULT

master

superuser

log_executor_stats

Для каждого запроса записывает статистику производительности исполнителя в лог. Базовый инструмент профилирования. Не совместим с log_statement_stats.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

superuser

log_hostname

По умолчанию логи подключений показывают только IP-адреса хостов. При значении on логируется также имя хоста. Может снижать производительность из-за разрешения имен.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

sighup

log_lock_waits

Логирует сообщение при ожидании блокировки дольше deadlock_timeout.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

log_min_duration_statement

Логирует оператор и длительность его выполнения в одну запись лога при выполнении дольше указанного времени в миллисекундах. При значении 0 логируются все операторы. -1 отключает логирование длительности. Пример: значение 250 включает логирование всех операторов, которые выполняются 250 миллисекунд или дольше. Полезно для поиска неоптимизированных запросов.

Диапазон значений Значение по умолчанию Область определения Контекст

число миллисекунд
0
-1

-1

master

superuser

log_min_error_statement

Контролирует логирование SQL-операторов, вызвавших ошибки. Логируются все операторы указанного уровня и выше. По умолчанию ERROR. Для отключения логирования операторов, вызывающих ошибки, установите значение PANIC.

Диапазон значений Значение по умолчанию Область определения Контекст

DEBUG5
DEBUG4
DEBUG3
DEBUG2
DEBUG1
INFO
NOTICE
WARNING
ERROR
LOG
FATAL
PANIC

ERROR

master

superuser

log_min_messages

Контролирует уровни сообщений, записываемых в лог сервера. Каждый уровень включает все последующие. Чем ниже уровень, тем меньше сообщений.

Если установлено расширение PL/Container, параметр также контролирует его уровень логов. См. PL/Container.

Диапазон значений Значение по умолчанию Область определения Контекст

DEBUG5
DEBUG4
DEBUG3
DEBUG2
DEBUG1
INFO
NOTICE
WARNING
LOG
ERROR
FATAL
PANIC

WARNING

master

superuser

log_parser_stats

Для каждого запроса записывает статистику производительности парсера в лог сервера. Базовый инструмент профилирования. Не совместим с log_statement_stats.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

log_planner_stats

Для каждого запроса записывает статистику производительности планировщика Postgres в лог сервера. Базовый инструмент профилирования. Не совместим с log_statement_stats.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

log_rotation_age

Определяет временной интервал записи в один активный лог-файл. По истечении этого времени файл закрывается, создается новый. 0 отключает ротацию по времени.

Диапазон значений Значение по умолчанию Область определения Контекст

Временное значение (число и единица)

1d

local

sighup

log_rotation_size

Размер лог-файла (в килобайтах), при достижении которого выполняется ротация. При достижении указанного размера файл закрывается, создается новый. 0 отключает ротацию по размеру.

Максимум INT_MAX/1024. При некорректном значении используется значение по умолчанию. INT_MAX — максимальное возможное значение integer в вашей системе.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — INT_MAX/1024

1048576

local

sighup

log_statement

Контролирует логирование SQL-операторов:

  • DDL — команды определения данных (CREATE, ALTER, DROP).

  • MOD — команды уровня DDL, а также INSERT, UPDATE, DELETE, TRUNCATE, COPY FROM.

PREPARE и EXPLAIN ANALYZE логируются в соответствии с их внутренними командами.

Диапазон значений Значение по умолчанию Область определения Контекст

NONE
DDL
MOD
ALL

ALL

master

superuser

log_statement_stats

Для каждого запроса записывает общую статистику производительности парсера, планировщика и исполнителя. Базовый инструмент профилирования.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

log_temp_files

Контролирует логирование названий и размеров временных файлов. Временные файлы создаются сортировками, хеш-операциями, временными результатами запросов. Запись в лог выполняется при удалении файла. В зависимости от происхождения временных файлов запись может появляться на мастере и/или сегментах. При значении 0 логируется информация обо всех файлах; при положительных значениях — при размере больше указанного числа килобайт. Значение по умолчанию -1 отключает логирование.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

-1

local

superuser

log_timezone

Часовой пояс для временных меток в логах. В отличие от TimeZone, это значение задается на уровне всей системы, поэтому временные метки всех сессий будут консистентны. По умолчанию используется часовой пояс операционной системы мастер-хоста в момент создания кластера.

Диапазон значений Значение по умолчанию Область определения Контекст

string

unknown

local

sighup

log_truncate_on_rotation

При ротации перезаписывает существующие лог-файлы с совпадающими именами вместо добавления в них. Используется только при ротации по времени. Например, при использовании этого параметра вместе с log_filename=gpseg#-%H.log будут созданы 24 лог-файла на каждый час суток, и они будут перезаписываться циклически. При отключении логи будут дописываться в конец существующих файлов с такими же именами.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

local

sighup

logging_collector

Запускает фоновый процесс logging collector для сбора сообщений из stderr в лог-файлы.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

postmaster

maintenance_work_mem

Максимальный объем памяти (в мегабайтах) для операций обслуживания, например VACUUM или CREATE INDEX. По умолчанию 64 МБ. Большее значение ускоряет вакуумирование и восстановление дампов.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

64

local

user

max_appendonly_tables

Задает максимальное количество одновременно изменяемых AO-таблиц. Операции, превышающие лимит, возвращают ошибку.

Учитываются операции INSERT, UPDATE, COPY, VACUUM. Лимит накладывается на число таблиц, изменяемых в активных транзакциях. После завершения транзакции (фиксации или отката) ее таблицы не учитываются.

ПРИМЕЧАНИЕ

Greengage DB ограничивает число одновременных вставок в AO-таблицу до 127.

Для партиционированных таблиц каждая изменяемая конечная AO-партиция считается как отдельная таблица. Например, партиционированная таблица p_tbl содержит три партиции, являющиеся AO-таблицами: p_tbl_ao1, p_tbl_ao2 и p_tbl_ao3. Операции INSERT или UPDATE на таблице p_tbl, изменяющие AO-таблицы p_tbl_ao1 и p_tbl_ao2 добавляют 2 к счетчику изменяемых AO-таблиц.

Увеличение лимита выделяет больше общей памяти на мастере при запуске.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

10000

master

postmaster

max_connections

Максимальное количество параллельных подключений к серверу базы данных. В Greengage DB клиентские подключения осуществляются только через мастер. На сегментах рекомендуется ставить лимит в 3 — 10 раз больше, чем на мастере. При увеличении также увеличивайте max_prepared_transactions.

С увеличением этого параметра Greengage DB может потребовать больше общей памяти. См. также shared_buffers.

Диапазон значений Значение по умолчанию Область определения Контекст

10 — 8388607

250 на мастере
750 на сегментах

local

postmaster

max_files_per_process

Максимальное количество одновременно открытых файлов на каждый серверный подпроцесс. При безопасном лимите ядра настройка не нужна. На некоторых платформах, например BSD, ядро разрешает открыть больше файлов, чем поддерживает система.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

1000

local

postmaster

max_function_args

Максимальное количество аргументов функции.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

100

read only

internal

max_identifier_length

Максимальная длина идентификатора.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

63

read only

internal

max_index_keys

Максимальное количество ключей индекса.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

32

read only

internal

max_locks_per_transaction

При создании общая таблица блокировок может вместить блокировки на max_locks_per_transaction * (max_connections + max_prepared_transactions) объектов, следовательно, это максимальное число одновременно заблокированных объектов. Это не жесткий лимит блокировок на транзакцию, а скорее максимальное среднее значение. При большом количестве объектов, блокируемых в рамках одной транзакции, может потребоваться увеличение этого лимита.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

128

local

postmaster

max_prepared_transactions

Максимальное количество подготовленных транзакций в один момент времени. Внутренние механизмы Greengage DB используют подготовленные транзакции для контроля целостности данных. Значение должно быть не меньше, чем max_connections на мастере. Значение на сегментах должно быть такое же, как на мастере.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

250

local

postmaster

max_resource_portals_per_transaction

ПРИМЕЧАНИЕ

Параметр max_resource_portals_per_transaction применяется только при управлении ресурсами через ресурсные очереди.

Максимальное количество одновременно открытых пользовательских курсоров на транзакцию. Курсор занимает слот запроса в очереди ресурсов. Используется для управления ресурсами.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

64

master

postmaster

max_resource_queues

ПРИМЕЧАНИЕ

Параметр max_resource_queues применяется только при управлении ресурсами через ресурсные очереди.

Максимальное количество ресурсных очередей в системе Greengage DB. Ресурсные очереди, как и роли, существуют на уровне системы; они применяются ко всем базам данных.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

9

master

postmaster

max_slot_wal_keep_size

Максимальный размер в мегабайтах файлов журнала предзаписи (Write-Ahead Log, WAL) на диске на сегмент, доступный Greengage DB для передачи данных на зеркальные сегменты или резервный мастер с целью их синхронизации с основными сегментами и основным мастером. По умолчанию -1 — без лимита.

При превышении лимита файлы освобождаются и могут быть удалены. В этом случае репликация на зеркальные сегменты или резервный мастер может быть нарушена.

ВНИМАНИЕ

При изменении max_slot_wal_keep_size на зеркальных сегментах, принявших роль основных, полное или инкрементальное восстановление из зеркал может быть невозможно. В зависимости от нагрузки, выполняемой параллельно с полным восстановлением, оно может прерваться с ошибкой потери WAL. Чтобы избежать этого, установите значение по умолчанию -1 или высокий лимит перед полным восстановлением. Аналогично, при инкрементальном восстановлении такие ошибки могут возникать в зависимости от отставания зеркала, вышедшего из строя. В этом случае единственное решение — полное восстановление.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

-1

local

sighup

max_stack_depth

Максимальная безопасная глубина стека выполнения сервера. Рекомендуется использовать значение лимита ядра системы (заданного ulimit -s или эквивалентной командой), за вычетом запаса примерно в один мегабайт. При использовании значений выше лимита ядра системы возможно аварийное завершение серверных процессов из-за рекурсивных вызовов.

Диапазон значений Значение по умолчанию Область определения Контекст

число килобайт

2MB

local

superuser

max_statement_mem

Задает максимальный лимит памяти для SQL-запроса в килобайтах. Предотвращает ошибки нехватки памяти на сегмент-хосте при слишком высоком statement_mem.

max_statement_mem можно рассчитать на основе конфигурации сегмент-хоста:

seghost_physical_memory / average_number_concurrent_queries

При изменении max_statement_mem и statement_mem сначала измените max_statement_mem или укажите его первым в postgresql.conf.

Диапазон значений Значение по умолчанию Область определения Контекст

число килобайт

2000MB

master

superuser

memory_spill_ratio

ПРИМЕЧАНИЕ

Параметр memory_spill_ratio применяется только при управлении ресурсами через ресурсные группы.

Задает порог использования памяти в процентах для ресурсоемких операторов в транзакции. При достижении порога на диске создаются spill-файлы.

По умолчанию значение memory_spill_ratio берется из ресурсной группы активной роли. Также memory_spill_ratio можно задать на уровне сессии для отдельных SQL-запросов. Например, для SQL-запроса, который создает spill-файлы и требует много памяти, можно увеличить memory_spill_ratio, чтобы выделить ему больше исходной памяти.

Возможные значения — целые числа от 0 до 100 (число процентов). При 0 выделение памяти операторам контролируется параметром statement_mem.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 100

20

master

user

optimizer

Включает или отключает использование GPORCA при выполнении SQL-запросов. По умолчанию on. При отключении используется только планировщик Postgres.

GPORCA сосуществует с планировщиком Postgres. При включенном GPORCA Greengage DB использует его для генерации плана, если это возможно. Если использование GPORCA невозможно, используется планировщик Postgres.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_analyze_root_partition

Для партиционированной таблицы определяет, нужно ли ключевое слово ROOTPARTITION для сбора статистики корневой партиции при ANALYZE. GPORCA использует статистику корня при планировании запроса. Планировщик Postgres — нет.

Значение по умолчанию on — ANALYZE собирает статистику корневой партиции без ROOTPARTITION. Статистика собирается при выполнении ANALYZE корневой или конечной партиции при наличии статистики других конечных партиций. При значении off для сбора статистики корневой партиции нужно выполнить ANALYZE ROOTPARTITION.

Если параметр optimizer имеет значение on (по умолчанию), этот параметр тоже должен быть on. Подробнее о сборе статистики для партиционированных таблиц см. в статье Сбор статистики с помощью ANALYZE.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_control

Контролирует возможность изменения параметра optimizer командами SET и RESET или утилитой gpconfig. При значении on пользователи могут менять optimizer. При off — нет.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

superuser

optimizer_enable_associativity

При использовании GPORCA (по умолчанию) этот параметр контролирует использование ассоциативных преобразований при соединениях. Эти преобразования анализируют порядок соединений. По умолчанию off — для анализа порядка соединений используется только алгоритм динамического программирования GPORCA. Ассоциативное преобразование по большей части дублирует функциональность более нового алгоритма динамического программирования.

При значении on GPORCA может использовать ассоциативное преобразование при соединениях.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_enable_dynamicbitmapscan

При использовании GPORCA (по умолчанию) и включении этого параметра GPORCA генерирует динамические bitmap-сканирования индексов для сложных SQL-запросов с предикатами на индексированных столбцах.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_enable_dynamicindexscan

При использовании GPORCA (по умолчанию) и включении этого параметра GPORCA использует планы с динамическими индексными сканированиями. Сканируются только релевантные партиции данных, без полного сканирования на всех сегментах.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_enable_orderedagg

При использовании GPORCA (по умолчанию) управляет генерацией планов для упорядоченных агрегатов. По умолчанию off — GPORCA отклоняет такие SQL-запросы к планировщику Postgres.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_enable_right_outer_join

При использовании GPORCA (по умолчанию) контролирует генерацию правых внешних соединений.

При значении on (по умолчанию) GPORCA генерирует правые внешние соединения и преобразует левые в правые при необходимости. При off генерирует эквивалентные левые внешние соединения вместо правых и не генерирует правые.

При проблемах с производительностью правых внешних соединений вы можете установить этот параметр в off, чтобы ограничить их использование.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса. Рекомендуется задавать на уровне запроса, так как в некоторых случаях использование правых внешних соединений — правильный выбор.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_enable_replicated_table

При использовании GPORCA (по умолчанию) контролирует поведение GPORCA при DML-операциях на реплицированных таблицах.

По умолчанию on — GPORCA планирует и выполняет операции на реплицированных таблицах. При off сразу откатывается к планировщику Postgres при операциях на реплицированных таблицах.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_join_arity_for_associativity_commutativity

Оптимизационная настройка для ограничения количества преобразований ассоциативности и коммутативности соединений во время оптимизации. Ограничивает число альтернатив, которые GPORCA рассматривает при оптимизации. Например, при значении по умолчанию 18 GPORCA прекращает исследовать преобразования ассоциативности и коммутативности соединений, когда у n-арного оператора соединения более 18 потомков.

Для SQL-запросов с множеством соединений меньшее значение улучшает производительность за счет снижения числа оцениваемых вариантов плана. При этом слишком низкое значение приводит к генерации неоптимальных планов.

Параметр не используется при значениях параметра optimizer_join_order query или greedy.

Параметр можно задать на уровне всей системы или сессии.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

18

local

user

optimizer_join_order

При использовании GPORCA (по умолчанию) задает алгоритм перечисления соединений:

  • query — использует порядок из SQL-запроса.

  • greedy — выбирает между порядком из SQL-запроса и альтернативами на основе минимальной мощности отношений в соединениях.

  • exhaustive — применяет правила преобразования и оценивает до optimizer_join_order_threshold (по умолчанию 10) n-сторонних внутренних соединений, а затем применяет жадную оптимизацию (greedy). В этом случае время планирования значительно сокращается, но качество плана и время исполнения могут ухудшиться.

  • exhaustive2 — работает с упором на генерацию порядков соединений, подходящих для динамического исключения партиций. Применяет правила трансформации, чтобы найти и оценить n-сторонние внутренние и внешние соединения. При оценке больших соединений в optimizer_join_order_threshold (по умолчанию 10) и более таблицами, этот алгоритм постепенно переходит к "жадному" (greedy) методу; время планирования растет плавно по мере усложнения запросов, а качество плана и время выполнения постепенно ухудшаются. Для многих запросов exhaustive2 обеспечивает хороший баланс между временем планирования и выполнения.

Значения query и greedy могут приводить к генерации неоптимальных планов. Если планы, генерируемые при значениях query и greedy удовлетворительны, время оптимизации можно сократить, выбрав более низкий уровень оптимизации.

При значениях query или greedy, GPORCA игнорирует параметр optimizer_join_order_threshold.

Параметр можно задать на уровне базы данных, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

query
greedy
exhaustive
exhaustive2

exhaustive

master

user

optimizer_join_order_threshold

При использовании GPORCA (по умолчанию) задает максимальное число потомков соединения для использования динамического программирования. Этот лимит определяет разумные пределы поиска плана.

Параметр используется при значениях optimizer_join_order exhaustive и exhaustive2. Если значение optimizer_join_order равно query или greedy, параметр игнорируется.

Параметр можно задать на уровне SQL-запроса или сессии.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 12

10

master

user

optimizer_mdcache_size

Максимальный объем памяти на мастере Greengage DB для кеша метаданных GPORCA (данные оптимизации) в процессе оптимизации. Лимит задается на уровне сессии. Кеш используется при включенном GPORCA и значении optimizer_metadata_caching on.

Значение по умолчанию 16384 (16 МБ). Это оптимальное значение, выведенное на основе анализа производительности.

Значение можно указать в KB (по умолчанию), MB или GB. Например, значение 16384 — это 16384KB. Значение 1GB — то же самое, что 1024MB или 1048576KB. При значении 0 лимита нет.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

16384

master

user

optimizer_metadata_caching

При использовании GPORCA (по умолчанию) включает кеширование метаданных на мастере во время оптимизации. По умолчанию on. Кеш сессионный — он освобождается в конце сессии. Если размер метаданных превышает размер кеша, наиболее старые неиспользуемые метаданные удаляются из него.

При значении off метаданные GPORCA не кешируются.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Размер кеша контролирует параметр optimizer_mdcache_size.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

optimizer_minidump

GPORCA генерирует minidump-файлы с контекстом оптимизации SQL-запроса. Формат хранения информации в этих файлах сложен для использования при отладке. minidump-файлы хранятся в каталоге данных мастера и имеют имена вида Minidump_YYYYMMSS_HHMMSS.mdp.

Файлы содержат следующую информацию о запросе:

  • Объекты каталога (типы, таблицы, операторы, статистика).

  • Внутреннее представление (DXL) запроса.

  • Внутреннее представление (DXL) плана, сгенерированного GPORCA.

  • Конфигурацию системы: параметры конфигурации, настройки затрат и статистики, число сегментов.

  • Стек вызовов ошибок в процессе оптимизации.

При значении ALWAYS minidump-файлы создаются для всех SQL-запросов. При ONERROR минимизируется время оптимизации.

Диапазон значений Значение по умолчанию Область определения Контекст

ONERROR
ALWAYS

ONERROR

master

user

optimizer_parallel_union

При использовании GPORCA (по умолчанию) контролирует параллелизацию для запросов с UNION и UNION ALL.

При значении off (по умолчанию) GPORCA генерирует план, в котором потомки APPEND(UNION) находятся в том же слайсе, что и APPEND. Они выполняются последовательно.

При значении on (по умолчанию) GPORCA генерирует план, где узел перемещения данных (redistribution motion) находится ниже оператора APPEND(UNION). При выполнении потомки и родительский оператор APPEND находятся в разных слайсах, позволяя потомкам APPEND(UNION) выполняться параллельно на сегментах.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

password_encryption

При указании пароля в CREATE USER или ALTER USER без ENCRYPTED/UNENCRYPTED этот параметр определяет шифрование пароля.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

password_hash_algorithm

Задает криптографический хеш-алгоритм для хранения зашифрованных паролей пользователей Greengage DB. По умолчанию MD5.

Информацию о настройке хеширования для защиты паролей см. в статье Хеширование паролей.

Диапазон значений Значение по умолчанию Область определения Контекст

MD5
SHA-256
SCRAM-SHA-256

MD5

master

superuser

plan_cache_mode

Подготовленные операторы (явные или неявные, например сгенерированные PL/pgSQL) могут выполняться частными (custom) или общими (generic) планами.

Частные планы создаются отдельно для каждого исполнения на основе его конкретных параметров, а общие не используют значения параметров и могут быть переиспользованы для нескольких исполнений. Использование общих планов сокращает время планирования, но если самый лучший план сильно зависит от значений параметров, общий план может быть неоптимальным. Обычно выбор между этими вариантами делается автоматически, но это можно переопределить параметром plan_cache_mode. Для подготовленных операторов без параметров всегда используются общие планы.

Значения: auto (по умолчанию), force_custom_plan и force_generic_plan. Параметр применяется при запуске кешированного плана, а не при подготовке.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

auto
force_custom_plan
force_generic_plan

auto

master

user

pljava_classpath

Список через двоеточие (:) JAR-файлов и каталогов с JAR-файлами для PL/Java функций. Указывайте полные пути; без путей можно указывать имена JAR-файлов из $GPHOME/lib/postgresql/java. JAR-файлы должны располагаться одинаково на всех хостах Greengage DB и быть доступными для чтения gpadmin.

Параметр pljava_classpath используется для составления пути к классам (PL/Java classpath) при старте каждой сессии. JAR-файлы, добавленные после начала сессии, не доступны в этой сессии.

При указании в pljava_classpath полного пути к JAR-файлу этот файл добавляется в путь к классам PL/Java. При указании каталога все JAR-файлы из этого каталога добавляются в путь к классам PL/Java. Поиск в подкаталогах не выполняется. Если имя JAR-файла указано в pljava_classpath без пути, этот файл должен находиться в каталоге $GPHOME/lib/postgresql/java.

ПРИМЕЧАНИЕ

Большое количество каталогов для поиска или JAR-файлов может влиять на производительность.

При значении pljava_classpath_insecure false для установки значения pljava_classpath нужны привилегии суперпользователя. Установка пути к классам в SQL-коде приведет к ошибке, если код запускается не-суперпользователем. pljava_classpath должен быть установлен суперпользователем или в файле postgresql.conf. При изменении пути к файлам в postgresql.conf требуется перезагрузка конфигурации (gpstop -u).

Диапазон значений Значение по умолчанию Область определения Контекст

string

 — 

master

superuser

pljava_classpath_insecure

Разрешает изменение pljava_classpath без привилегий суперпользователя. При значении true обычные пользователи могут менять pljava_classpath. Иначе — только суперпользователи. По умолчанию false.

ВНИМАНИЕ

При включении параметра pljava_classpath_insecure возникают риски безопасности из-за возможности запуска несанкционированных Java-методов обычными пользователями.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

postmaster

pljava_release_lingering_savepoints

При значении true точки сохранения PL/Java освобождаются при выходе из функции. При false — откатываются.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

superuser

pljava_statement_cache_size

Размер JRE MRU-кеша (Most Recently Used) для подготовленных операторов в килобайтах.

Диапазон значений Значение по умолчанию Область определения Контекст

number of kilobytes

0

master

superuser

pljava_vmoptions

Опции запуска Java VM. По умолчанию пустая строка ("").

Диапазон значений Значение по умолчанию Область определения Контекст

string

 — 

master

superuser

port

TCP-порт, на котором слушает экземпляр Greengage DB. Мастер и каждый из сегментов работают на своих портах. Изменения портов кластера Greengage DB нужно также отразить в таблице системного каталога gp_segment_configuration. Для изменения портов требуется остановка системы.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — 65535

5432

local

postmaster

quote_all_identifiers

Заключает все идентификаторы в кавычки при генерации SQL базой, даже неключевые слова.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

local

user

random_page_cost

Оценка стоимости неупорядоченного чтения страницы для планировщика Postgres. Значение — множитель стоимости последовательного чтения страницы. При более высоких значениях чаще используются последовательные сканирования, при более низких — индексные сканирования

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой

100

master

user

readable_external_table_timeout

При чтении внешней таблицы SQL-запросом этот параметр определяет время (в секундах) ожидания перед отменой запроса при отсутствии данных.

По умолчанию 0 — без тайм-аута. Запросы не отменяются.

Если запросы, использующие gpfdist, долго выполняются, а затем возвращают ошибку intermittent network connectivity issues, установите ненулевое значение readable_external_table_timeout. Если данные не будут получены за это время, Greengage DB отменит запрос.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — INT_MAX

0

master

user

repl_catchup_within_range

Контролирует обновления активного мастера для зеркалирования. Если количество сегментов WAL, не обработанных walsender, превышает значение параметра, Greengage DB обновляет активный мастер.

Если количество сегментов WAL не превышает значение, Greengage DB блокирует обновления для обработки файлов walsender. Если все WAL-сегменты обработаны, активный мастер обновляется.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 64

1

master

superuser

resource_cleanup_gangs_on_wait

ПРИМЕЧАНИЕ

Параметр resource_cleanup_gangs_on_wait применяется только при управлении ресурсами через ресурсные очереди.

При отправке оператора через ресурсную очередь очищает простаивающие рабочие процессы исполнителя перед блокировкой очереди.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

resource_select_only

ПРИМЕЧАНИЕ

Параметр resource_select_only применяется только при управлении ресурсами через ресурсные очереди.

Задает типы SQL-запросов, управляемых ресурсными очередями. При on оцениваются SELECT, SELECT INTO, CREATE TABLE AS SELECT, DECLARE CURSOR. При off оцениваются также INSERT, UPDATE, DELETE.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

postmaster

runaway_detector_activation_percent

Для SQL-запросов, управляемых ресурсными очередями или ресурсными группами, параметр определяет завершение выполнения запроса по использованию памяти. Значение 100 отключает автоматическое завершение по проценту потребления памяти.

  • При использовании ресурсных очередей

    Задает процент использованной памяти vmem, при достижении которого Greengage DB начинает прерывать выполнение SQL-запросов. При превышении этого значения на сегменте Greengage DB прерывает запросы в порядке убывания потребления памяти. Это продолжается до того, как потребление памяти vmem упадет ниже указанного процента.

    Максимальное значение потребляемой памяти vmem на сегменте задается параметром конфигурации gp_vmem_protect_limit.

    Например, если доступно 10 ГБ vmem и значение параметра — 90 (90%), Greengage DB начинает прерывать запросы при потреблении 9 ГБ памяти.

    Подробнее о ресурсных очередях см. в статье Использование ресурсных очередей.

  • При использовании ресурсных групп

    Задает процент глобальной разделяемой памяти группы, при достижении которого Greengage DB начинает прерывать выполнение SQL-запросов в ресурсных группах, использующих аудитор памяти vmtracker (например admin_group, default_group).

    Подробнее об аудиторах памяти в ресурсных группах см. в разделе Аудитор памяти.

    Пул глобальной разделяемой памяти доступен в случае, когда сумма атрибутов MEMORY_LIMIT всех ресурсных групп меньше 100. Например, если есть 3 ресурсных группы с memory_limit 10, 20 и 30, глобальная разделяемая память составляет 40% = 100% - (10% + 20% + 30%). Подробнее см. в разделе Глобальная разделяемая память.

    При превышении указанного процента использования глобальной разделяемой памяти Greengage DB прерывает запросы из ресурсных групп, использующих аудитор памяти vmtracker. Первыми прерываются запросы, потребляющие наибольшее количество памяти. Это продолжается до того, как потребление глобальной разделяемой памяти упадет ниже указанного процента.

    Например, если доступно 10 ГБ глобальной разделяемой памяти и значение параметра — 90 (90%), Greengage DB начинает прерывать запросы при потреблении 9 ГБ этой памяти.

    Подробнее о ресурсных группах см. в статье Использование ресурсных групп.

Диапазон значений Значение по умолчанию Область определения Контекст

процент (integer)

90

local

postmaster

search_path

Задает путь поиска схемы при обращении к объекту по простому имени без схемы. При существовании объектов с одинаковыми именами в разных схемах берется первый в пути поиска. Поиск в системной схеме pg_catalog выполняется всегда, даже если она не указана в search_path. Объекты, создаваемые без указания схемы, размещаются в первой схеме, указанной в search_path. Текущее значение можно посмотреть через функцию current_schema(). Она показывает, какая схема search_path реально используется в данный момент.

Диапазон значений Значение по умолчанию Область определения Контекст

список схем через запятую

$user,public

master

user

seq_page_cost

Для планировщика Postgres задает оценку стоимости чтения страницы диска, являющегося частью последовательного набора чтений.

Диапазон значений Значение по умолчанию Область определения Контекст

число с плавающей точкой

1

master

user

server_encoding

Показывает кодировку базы данных (набор символов). Определяется при инициализации кластера Greengage DB. Обычно клиентам достаточно значения client_encoding.

Диапазон значений Значение по умолчанию Область определения Контекст

зависит от системы

UTF8

read only

internal

server_version

Показывает версию PostgreSQL, которую использует Greengage DB.

Диапазон значений Значение по умолчанию Область определения Контекст

string

9.4.26

read only

internal

server_version_num

Показывает версию PostgreSQL, которую использует Greengage DB, в виде целого числа.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

90426

read only

internal

shared_buffers

Задает объем памяти, используемой сегментом Greengage DB для буферов в разделяемой памяти. Значение должно быть не менее 128 КБ и не менее 16 КБ, умноженных на max_connections.

Каждый экземпляр сегмента Greengage DB рассчитывает и пытается выделить определенный объем разделяемой памяти на основе конфигурации сегмента. Значение shared_buffers составляет значительную часть этого расчета общей памяти, но не всю.

При установке shared_buffers могут потребоваться корректировки параметров ОС SHMMAX или SHMALL.

Параметр ОС SHMMAX задает максимальный размер выделения разделяемой памяти за один раз. Значение SHMMAX должно быть больше следующего значения:

shared_buffers + <other_seg_shmem>

Значение other_seg_shmem — часть расчета разделяемой памяти Greengage DB, не учтенная в shared_buffers. other_seg_shmem варьируется в зависимости от конфигурации сегмента.

При параметрах Greengage DB по умолчанию значение other_seg_shmem составляет примерно 111 МБ для сегментов и примерно 79 МБ для мастера.

Параметр ОС SHMALL задает максимальный объем разделяемой памяти на хосте. Значение SHMALL должно быть больше следующего значения:

(<num_instances_per_host> * (shared_buffers + <other_seg_shmem>)) + <other_app_shared_mem>

Значение other_app_shared_mem — объем общей памяти, используемой другими приложениями и процессами на хосте.

При ошибках выделения общей памяти возможны способы решения: увеличить SHMMAX или SHMALL, уменьшить shared_buffers или max_connections.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 16K * max_connections

125MB

local

postmaster

shared_preload_libraries

Список библиотек, загружаемых при запуске сервера, через запятую. С помощью этого параметра можно предварительно загружать библиотеки процедурных языков PostgreSQL значениями вида $libdir/plXXX, где XXX может быть pgsql, perl, tcl, или python. Предзагрузка сокращает время запуска при первом использовании библиотеки. При отсутствии библиотеки сервер не запустится.

ПРИМЕЧАНИЕ

При добавлении библиотеки в shared_preload_libraries сохраняйте предыдущие значения параметра.

Диапазон значений Значение по умолчанию Область определения Контекст

список библиотек через запятую

 — 

local

postmaster

ssl

Включает SSL-соединения.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

postmaster

ssl_ciphers

Задает список разрешенных шифров SSL для защищенных соединений. ssl_ciphers переопределяет строку шифров в /etc/openssl.cnf. Значение по умолчанию ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH разрешает все шифры, кроме ADH, LOW, EXP, MD5, сортируя по надежности.

ПРИМЕЧАНИЕ

При TLS 1.2 некоторые шифры с надежностью MEDIUM и HIGH используют шифрование NULL (транспорт без шифрования), разрешенное значением ssl_ciphers по умолчанию. Для исключения NULL при TLS 1.2 используйте значения вида TLSv1.2:!eNULL:!aNULL.

Список поддерживаемых шифров доступен в справке OpenSSL.

Диапазон значений Значение по умолчанию Область определения Контекст

string

HIGH:MEDIUM:+3DES:!aNULL

master

postmaster

standard_conforming_strings

Определяет, обрабатываются ли в обычных строковых литералах ('…​') обратные слеши буквально согласно SQL-стандарту. По умолчанию on. При off обратные слеши обрабатываются как экранирующие символы. Приложения могут проверять этот параметр, чтобы понять, как обрабатываются строки. Наличие параметра указывает на поддержку escape-синтаксиса (E'…​').

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

user

statement_mem

Задает объем памяти сегмент-хоста, выделяемой на один SQL-запрос. Объем, выделяемый этим параметром, не может превышать max_statement_mem или лимит памяти, установленный ресурсной группой или очередью запроса. Если запросу требуется больше памяти, используются spill-файлы.

При использовании ресурсных групп:

  • Greengage DB использует statement_mem для управления памятью, если параметр MEMORY_SPILL_RATIO равен 0.

  • Разумное значение statement_mem можно рассчитать так:

    rg_perseg_mem = ((RAM * (vm.overcommit_ratio / 100) + SWAP) * gp_resource_group_memory_limit) / num_active_primary_segments
    statement_mem = rg_perseg_mem / max_expected_concurrent_queries

При использовании ресурсных очередей:

  • При значении gp_resqueue_memory_policy auto использование памяти контролируют statement_mem и лимиты ресурсных очередей.

  • Разумное значение statement_mem, подходящее в большинстве случаев, можно рассчитать так:

    ( <gp_vmem_protect_limit>GB * 0.9 ) / <max_expected_concurrent_queries>

    Например, при gp_vmem_protect_limit 8192MB (8 ГБ) и расчетном числе параллельных запросов не более 40 с буфером 10% значение statement_mem будет следующим:

    (8GB * 0.9) / 40 = 0.18GB = 184MB

При изменении max_statement_mem и statement_mem сначала измените max_statement_mem или укажите его первым в postgresql.conf.

Диапазон значений Значение по умолчанию Область определения Контекст

число килобайт не более max_statement_mem

125MB

master

user

statement_timeout

Прерывает выполнение любого запроса, выполняющегося дольше указанного количества миллисекунд. 0 отключает ограничение.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

0

master

user

stats_queue_level

ПРИМЕЧАНИЕ

Параметр stats_queue_level применяется только при управлении ресурсами через ресурсные очереди.

Собирает статистику использования ресурсных очередей.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

superuser

superuser_reserved_connections

Определяет количество слотов подключений, зарезервированных для суперпользователей Greengage DB.

Диапазон значений Значение по умолчанию Область определения Контекст

1 — max_connections

10

local

postmaster

tcp_keepalives_count

Количество TCP keepalive-сообщений, которое может быть потеряно до того, как соединение будет считаться разорванным. Значение 0 — использовать системное значение по умолчанию. Если TCP_KEEPCNT не поддерживается, значение должно быть 0.

Используйте для всех подключений, кроме подключений между основными и зеркальными сегментами.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

local

user

tcp_keepalives_idle

Количество секунд между отправкой TCP keepalive-сообщений на простаивающем подключении. Значение 0 — использовать системное значение по умолчанию. Если TCP_KEEPIDLE не поддерживается, значение должно быть 0.

Используйте для всех подключений, кроме подключений между основными и зеркальными сегментами.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

local

user

tcp_keepalives_interval

Количество секунд ожидания ответа на TCP keepalive-сообщение перед повторной передачей. Значение 0 — использовать системное значение по умолчанию. Если TCP_KEEPINTVL не поддерживается, значение должно быть 0.

Используйте для всех подключений, кроме подключений между основными и зеркальными сегментами.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

local

user

temp_buffers

Задает максимальный объем памяти (в блоках) для временных буферов каждой сессии базы данных. Сессионные буферы используются только для доступа к временным таблицам. Параметр можно изменять в сессии до первого использования временных таблиц. При установке большого значения в сессиях, которые не используют много временных буферов, реально выделяются только дескрипторы буферов — примерно 63 байта на блок. При использовании буфера дополнительно выделяется 32768 байт.

Значение можно указывать в блоках по 32 КБ (например, значение 1024 — это 32 МБ) или единицах памяти ('48MB' — 1536 блоков). Утилита gpconfig и команда SHOW показывают максимальный объем памяти для временных буферов.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

1024 (32MB)

master

user

temp_file_limit

Задает максимальный общий размер всех временных файлов сессии в килобайтах.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

-1 (без лимита)

master

superuser

temp_spill_files_tablespaces

Задает отдельное табличное пространство для spill-файлов. Имеет приоритет над temp_tablespaces для spill-файлов при наличии обоих параметров.

Значение — список табличных пространств через запятую. При указании нескольких табличных пространств все spill-файлы, созданные процессами одной сессии, размещаются в одном табличном пространстве. Greengage DB выбирает табличное пространство из списка для каждой сессии по ее gp_session_id:

<tablespace_number> = gp_session_id % <count>

где:

  • <tablespace_number> — порядковый номер табличного пространства в списке, начиная с 0.

  • <count> — количество табличных пространств в списке.

Диапазон значений Значение по умолчанию Область определения Контекст

список табличных пространств через запятую

 — 

master

user

temp_tablespaces

Задает табличные пространства для временных объектов (временные таблицы и индексы на них) при отсутствии явного указания табличного пространства в CREATE. Эти табличные пространства также используются для временных файлов, например промежуточных результатов сортировок. Для spill-файлов можно задать отдельные табличные пространства в параметре temp_spill_files_tablespaces.

Значение — список табличных пространств через запятую. При указании нескольких табличных пространств Greengage DB выбирает одно из них для каждого временного объекта случайным образом. Исключение: при работе в транзакции последовательно созданные временные объекты создаются в табличных пространствах в том порядке, как они указаны в temp_tablespaces. Если значение в списке — пустая строка, используется табличное пространство текущей базы данных по умолчанию.

При интерактивной установке значения temp_tablespaces избегайте несуществующих пространств или тех пространств, для которых у пользователя нет привилегии CREATE. Обычным пользователям суперпользователь должен выдать привилегию CREATE. При использовании установленного ранее значения (например, из postgresql.conf) несуществующие табличные пространства, а также те, на которые у пользователя нет привилегии CREATE, игнорируются.

Значение по умолчанию — пустая строка — означает использование табличного пространства базы по умолчанию.

См. также default_tablespace.

Диапазон значений Значение по умолчанию Область определения Контекст

список табличных пространств через запятую

 — 

master

user

TimeZone

Задает часовой пояс для отображения и интерпретации временных меток. По умолчанию используется часовой пояс операционной системы в момент создания кластера. См. Date/Time Keywords в документации PostgreSQL.

Диапазон значений Значение по умолчанию Область определения Контекст

сокращение часового пояса

 — 

local

user

timezone_abbreviations

Задает набор сокращений часовых поясов, принимаемых сервером для ввода даты-времени. По умолчанию Default — работает в большинстве регионов мира. Для конкретной инсталляции можно указать Australia, India и другие наборы. Возможные значения — имена файлов конфигурации в $GPHOME/share/postgresql/timezonesets/.

Чтобы использовать собственный набор часовых поясов, скопируйте файл с определениями часовых поясов в каталог $GPHOME/share/postgresql/timezonesets/ на мастер-хосте и сегмент-хостах Greengage DB. Затем укажите название этого файла в значении timezone_abbreviations. Например, чтобы использовать собственный набор custom, который включает часовые пояса по умолчанию и дополнительно пояс WIB (Waktu Indonesia Barat):

  1. Скопируйте Default из $GPHOME/share/postgresql/timezonesets/ в новый файл custom. Добавьте часовой пояс WIB из Asia.txt в custom.

  2. Скопируйте custom в $GPHOME/share/postgresql/timezonesets/ на мастер-хосте и сегмент-хостах Greengage DB.

  3. Установите timezone_abbreviations = custom.

  4. Перезагрузите конфигурацию сервера (gpstop -u).

Диапазон значений Значение по умолчанию Область определения Контекст

string

Default

master

user

track_activities

Включает сбор информации о выполняющемся сейчас операторе каждой сессии и времени его начала. По умолчанию true. Изменять могут только суперпользователи.

ПРИМЕЧАНИЕ

При включении эта информация видна только суперпользователям и владельцу сессии, что не представляет угрозы безопасности.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

superuser

track_activity_query_size

Задает максимальную длину текста SQL-запроса в столбце query представления pg_stat_activity. Минимальная длина 1024 символа.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

1024

local

postmaster

track_counts

Включает сбор статистики активности в базах данных.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

superuser

transaction_isolation

Задает уровень изоляции текущей транзакции. Greengage DB обрабатывает read uncommitted так же, как read committed, а serializable — так же, как repeatable read.

Диапазон значений Значение по умолчанию Область определения Контекст

read committed
read uncommitted
repeatable read
serializable

read committed

master

user

transaction_read_only

Задает статус "только для чтения" текущей транзакции.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

transform_null_equals

При значении on выражения вида <expr> = NULL (или NULL = <expr>) трактуются как <expr> IS NULL, то есть возвращают true, если значение выражения <expr> — null и false в других случаях. Корректное трактование выражений <expr> = NULL по спецификации SQL — всегда null (unknown).

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

unix_socket_directories

Задает каталог для сокетов домена Unix, которые сервер использует для прослушивания подключений клиентов. Несколько каталогов указываются через запятую. Пробелы между каталогами игнорируются — указывайте названия с пробелами или запятыми в двойных кавычках. Пустое значение означает, что сервер не слушает сокеты домена Unix и подключения возможны только по TCP/IP. Значение по умолчанию — /tmp. Устанавливается только при запуске сервера.

В дополнение к файлу сокета с именем вида .s.PGSQL.nnnn (где nnnn — TCP-порт сервера), создается .s.PGSQL.nnnn.lock в каждом каталоге из unix_socket_directories.

ВАЖНО

Не удаляйте файлы вручную и не меняйте значение параметра unix_socket_directories. Каталог /tmp в значении требуется для утилит Greengage DB.

Диапазон значений Значение по умолчанию Область определения Контекст

пути к каталогам, разделенные запятыми

/tmp

local

postmaster

unix_socket_group

Задает группу-владельца сокета домена Unix. По умолчанию пустая строка — группа текущего пользователя.

Диапазон значений Значение по умолчанию Область определения Контекст

название группы Unix

 — 

local

postmaster

unix_socket_permissions

Задает права доступа сокета домена Unix. Используются стандартные права файловой системы Unix. Для сокета домена Unix важно только право записи.

Диапазон значений Значение по умолчанию Область определения Контекст

числовое представление прав Unix (как в командах chmod или umask)

0777

local

postmaster

update_process_title

Включает обновление заголовка процесса при получении нового SQL-запроса. Заголовок виден в выводе команды ps.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

local

superuser

vacuum_cost_delay

Время (в миллисекундах), на которое процесс засыпает при превышении лимита затрат. 0 отключает задержку вакуумирования на основе затрат.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 100

0

local

user

vacuum_cost_limit

Накопленные затраты, при которых процесс вакуумирования засыпает.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

200

local

user

vacuum_cost_page_dirty

Оценочная стоимость операции изменения ранее чистого блока при вакуумировании. Отражает затраты на дополнительный ввод-вывод, необходимый для повторной записи грязного блока на диск.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

20

local

user

vacuum_cost_page_hit

Оценочная стоимость вакуумирования буфера, найденного в кеше разделяемых буферов. Отражает стоимость блокировки пула буферов, поиска в общей хеш-таблице и сканирования содержимого страницы.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

1

local

user

vacuum_cost_page_miss

Оценочная стоимость вакуумирования буфера, который необходимо прочитать с диска. Отражает затраты на блокировку пула буферов, поиск в общей хеш-таблице, чтение требуемого блока с диска и сканирование его содержимого.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

10

local

user

vacuum_freeze_min_age

Задает пороговый возраст (в транзакциях), который VACUUM использует для определения замены ID транзакций на FrozenXID при сканировании таблицы.

Подробная информация о VACUUM и управлении ID транзакций доступна в статье Удаление устаревших строк с помощью VACUUM и в разделе Preventing Transaction ID Wraparound Failures документации PostgreSQL.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 1000000000

50000000

local

user

wait_for_replication_threshold

При включенном зеркалировании сегментов Greengage DB задает максимальный общий размер записей журнала предзаписи (Write-Ahead Log, WAL) в КБ, записанных транзакцией на хосте основного сегмента перед записью на хост зеркального сегмента для репликации. По умолчанию Greengage DB записывает записи на зеркальный при достижении контрольной точки или wait_for_replication_threshold.

Значение 0 отключает проверку объема записей. Записи передаются на хост зеркала только при достижении контрольной точки.

При значении 0 и высоких нагрузках с длительными транзакциями без контрольных точек возможны проблемы производительности.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — INT_MAX/1024

1024

master

sighup

wal_keep_segments

Для зеркалирования мастера Greengage DB задает максимальное количество обработанных сегментов WAL-файлов, сохраняемых активным мастером Greengage DB при достижении контрольной точки.

Эти файлы используются для синхронизации активного мастера с резервным.

Диапазон значений Значение по умолчанию Область определения Контекст

integer

5

master

sighup

wal_receiver_status_interval

Для зеркалирования мастера Greengage DB задает интервал в секундах между сообщениями статуса процесса walreceiver, отправляемыми на активный мастер. При высоких нагрузках время может увеличиваться.

Значение wal_sender_timeout контролирует ожидание процессов walsender сообщения от walreceiver.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — INT_MAX/1000

10

master

sighup

wal_sender_archiving_status_interval

При включенном зеркалировании и архивировании сегментов Greengage DB задает интервал в миллисекундах, с которым процесс walsender на основном сегменте отправляет сообщения статуса архивирования процессу walreceiver зеркального сегмента.

Значение 0 отключает функцию.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — INT_MAX

10000 (10 секунд)

local

sighup

wal_sender_timeout

Для зеркалирования мастера Greengage DB задает максимальное время в миллисекундах, которое процесс walsender на активном мастере ждет сообщения статуса от процесса walreceiver на резервном мастере. При отсутствии сообщения walsender логирует ошибку.

Интервал сообщений walreceiver контролирует параметр wal_receiver_status_interval.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — INT_MAX

300000 (5 минут)

master

user

work_mem

Задает максимальный объем памяти для операции SQL-запроса (сортировка, построение хеш-таблицы) до начала записи во временные файлы на диске. Без указания единиц подразумеваются килобайты. По умолчанию 32 МБ. При выполнении сложного SQL-запроса несколько сортировок и хеш-операций могут работать параллельно; каждой из них доступно указанное количество памяти до начала использования диска. Кроме того, может быть несколько параллельных сессий. В результате общий объем используемой памяти может быть многократно больше work_mem. Сортировки используются в ORDER BY, DISTINCT и соединениях слиянием. Хеш-таблицы — в хеш-соединениях, хеш-агрегациях и подзапросах IN. Кроме сортировок и хеш-операций work_mem также используется сканированиями по bitmap-индексам. Также work_mem учитывают операции, использующие tuplestore: сканирования функций, общие табличные выражения (CTE), PL/pgSQL и административные пользовательские функции.

Кроме выделения памяти отдельным операторам, work_mem также влияет на выбор плана выполнения при использовании планировщика Postgres.

work_mem — отдельный аспект управления памятью, он не взаимодействует с механизмами ресурсных групп или очередей, которые управляют памятью на уровне запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

число килобайт

32MB

master

user

writable_external_table_bufsize

Размер буфера Greengage DB для сетевого взаимодействия, например, с утилитой gpfdist или внешними веб-таблицами, использующими HTTP. Единицы: KB (128KB), MB, GB, TB. Данные буферизуются перед записью. Подробнее о gpfdist см. в статье Использование gpfdist.

Диапазон значений Значение по умолчанию Область определения Контекст

32—​131072 (32KB — 128MB)

1MB

local

user

xmlbinary

Задает кодирование бинарных значений в XML-данных. Например, при конвертации значений типа bytea в xml. Бинарные данные могут кодироваться либо Base64, либо шестнадцатеричным кодированием. По умолчанию используется base64.

Параметр можно задать на уровне всей системы, базы или сессии.

Диапазон значений Значение по умолчанию Область определения Контекст

base64
hex

base64

master

user

xmloption

Определяет, как рассматриваются XML-данные при неявном парсинге и сериализации: как документ (document) или фрагмент содержимого (content) . По умолчанию content.

Влияет на валидацию функцией xml_is_well_formed(). При значении document — проверка корректности XML-документа. При значении content — проверка корректности XML-фрагмента содержимого.

ПРИМЕЧАНИЕ

XML-документ с DTD не является корректным XML-фрагментом содержимого. При xmloption=content XML с DTD невалиден.

Для приведения строки с DTD к типу xml используйте функцию xmlparse() с ключевым словом document или установите значение xmloption=document.

Параметр можно задать на уровне всей системы, базы или сессии.

SET XML OPTION { DOCUMENT | CONTENT };
Диапазон значений Значение по умолчанию Область определения Контекст

document
content

content

master

user

Параметры разработки

Параметры конфигурации сервера, перечисленные в этом разделе, предназначены только для разработки и тестирования. Они не отображаются в представлении pg_settings и выводе gpconfig -l, но могут быть установлены в postgresql.conf или через команду SET в зависимости от контекста.

ВНИМАНИЕ

Не рекомендуется изменять эти параметры в production-средах.

dtx_phase2_retry_count

Максимальное количество попыток повтора во второй фазе двухфазного коммита. При невозможности коммита на одном или нескольких сегментах мастер повторяет попытку максимум dtx_phase2_retry_count раз. При неудаче на последней попытке мастер генерирует PANIC.

При нестабильной сети соединение мастера с одним или несколькими сегментами может теряться. Увеличение числа попыток двухфазного коммита повышает доступность Greengage DB при временных сетевых проблемах.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

60

master

superuser

enable_implicit_timeformat_YYYYMMDDHH24MISS

Включает или отключает устаревшее неявное преобразование строки с форматом временной метки YYYYMMDDHH24MISS в допустимый тип даты/времени.

По умолчанию off. При on Greengage DB преобразует строку формата YYYYMMDDHH24MISS в допустимый тип даты/времени.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_add_column_inherits_table_setting

При добавлении столбца к колоночно-ориентированной оптимизированной для добавления (AOCO) таблице командой ALTER TABLE параметр контролирует, могут ли параметры сжатия данных таблицы для столбца (compresstype, compresslevel, blocksize) наследоваться от значений таблицы. По умолчанию off; настройки сжатия таблицы не учитываются. При on учитываются настройки таблицы.

При создании AOCO-таблицы параметры сжатия compresstype, compresslevel, blocksize задаются в выражении WITH. При добавлении столбца Greengage DB устанавливает каждый параметр сжатия по приоритету:

  1. Настройка сжатия атрибутом ENCODING команды ALTER TABLE.

  2. Если значение параметра gp_add_column_inherits_table_setting — on, настройка сжатия из WITH при создании таблицы. Иначе игнорируется.

  3. Настройка сжатия из параметра сервера gp_default_storage_options.

  4. Настройка сжатия по умолчанию.

Для изменения значения требуется опция --skipvalidation. Будьте крайне осторожны при ее использовании.

$ gpconfig --skipvalidation -c gp_add_column_inherits_table_setting -v on
Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_appendonly_compaction

Включает уплотнение (compaction) сегментных файлов во время выполнения VACUUM. При отключении этого параметра VACUUM только обрезает файлы до EOF. Администратор может отключить уплотнение при высокой I/O-нагрузке или нехватке места.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

on

master

superuser

gp_eager_two_phase_agg

Включает или отключает двухфазную агрегацию для планировщика Postgres.

По умолчанию off — планировщик выбирает лучший путь агрегации по стоимости. При on планировщик добавляет стоимость отключения к путям первой стадии, заставляя генерировать путь агрегации с несколькими стадиями.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_enable_segment_copy_checking

Контролирует проверку политики распределения таблицы (из выражения DISTRIBUTED) при копировании данных в таблицу командой COPY FROM …​ ON SEGMENT. При true нарушение политики распределения на сегменте вызывает ошибку. По умолчанию true.

При false политика не проверяется. Данные могут быть распределены с нарушением политики. Может потребоваться ручное перераспределение.

Параметр можно задать на уровне всей системы или сессии. Нельзя задать для отдельной базы данных.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

gpperfmon_log_alert_level

Контролирует уровни сообщений, записываемых в лог gpperfmon. Каждый уровень включает последующие. Чем выше уровень, тем меньше сообщений.

Диапазон значений Значение по умолчанию Область определения Контекст

NONE
WARNING
ERROR
FATAL
PANIC

NONE

local

user

gp_log_endpoints

Управляет записью информации о конечных точках курсоров параллельного получения в лог сервера. По умолчанию false — без подробностей. При значении true логируется информация о конечных точках.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

superuser

gp_log_fts

Контролирует детализацию логов процесса обнаружения сбоев (ftsprobe).

Диапазон значений Значение по умолчанию Область определения Контекст

OFF
TERSE
VERBOSE
DEBUG

TERSE

master

sighup

gp_log_interconnect

Контролирует объем информации о коммуникации между рабочими процессами сегментов Greengage DB в лог-файле. По умолчанию TERSE. Информация записывается в логи мастера и сегментов.

Увеличение логирования влияет на производительность и использование дискового пространства.

Диапазон значений Значение по умолчанию Область определения Контекст

OFF
TERSE
VERBOSE
DEBUG

TERSE

master

user

gp_log_gang

Контролирует объем информации о создании рабочих процессов SQL-запросов и управлении SQL-запросами, записываемой в лог-файл. По умолчанию OFF — информация не логируется.

Диапазон значений Значение по умолчанию Область определения Контекст

OFF
TERSE
VERBOSE
DEBUG

OFF

master

user

gp_log_resqueue_priority_sleep_time

Контролирует логирование времени сна процесса на оператор при управлении ресурсами через ресурсные очереди. Информацию можно использовать для анализа времени сна SQL-запросов.

По умолчанию false — время сна оператора не логируется. При true Greengage DB логирует:

  • Текущее время сна выполняющегося SQL-запроса каждые 2 минуты.

  • Общее время сна SQL-запроса в конце выполнения.

Информация записывается в лог сервера.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

user

gp_max_parallel_cursors

Задает максимальное количество одновременно активных параллельных курсоров в кластере Greengage DB. Параллельный курсор активен после DECLARE до CLOSE или ошибки. По умолчанию лимит не установлен.

Диапазон значений Значение по умолчанию Область определения Контекст

-1 — 1024

-1 (без лимита)

master

superuser

gp_recursive_cte

Контролирует доступность ключевого слова RECURSIVE в выражении WITH команд SELECT, SELECT INTO, DELETE, INSERT или UPDATE. Ключевое слово позволяет подзапросу в WITH ссылаться на себя. По умолчанию true — RECURSIVE разрешено в WITH.

Подробнее о ключевом слове RECURSIVE см. Общие табличные выражения (CTE).

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

gp_enable_explain_allstat

При включении показывает статистику каждого отдельного сегмента в выводе EXPLAIN ANALYZE. Полезно для выявления перекоса или замедления на конкретном сегменте.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

gp_retrieve_conn

Сессия, запущенная с PGOPTIONS='-c gp_retrieve_conn=true', является сессией извлечения (retrieve session). Используется для получения результирующих кортежей из конкретной конечной точки курсора параллельного получения.

Этот параметр можно задавать только в значении PGOPTIONS.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

read only

backend

gp_session_role

Роль процесса сервера: DISPATCH для мастера и EXECUTE для сегмента. UTILITY используется для подключения к кластеру, работающему в режиме только мастера. Этот параметр можно задавать только в значении PGOPTIONS:

$ PGOPTIONS="-c gp_session_role=utility" psql postgres
Диапазон значений Значение по умолчанию Область определения Контекст

DISPATCH
EXECUTE
UTILITY

DISPATCH (мастер)
EXECUTE (сегмент)

read only

backend

gp_use_legacy_hashops

Для таблицы, созданной с выражением DISTRIBUTED BY <key_column> контролирует алгоритм хеширования для распределения данных по сегментам. По умолчанию false — jump consistent hash.

При значении true используется алгоритм modulo hash.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

user

log_file_mode

В системах Unix задает права доступа для лог-файлов при включенном logging_collector.

Диапазон значений Значение по умолчанию Область определения Контекст

числовое представление прав Unix (как в командах chmod или umask)

0600

local

sighup

optimizer_array_expansion_threshold

При использовании GPORCA (по умолчанию) и обработке запроса с предикатом с массивом констант optimizer_array_expansion_threshold ограничивает процесс оптимизации по количеству констант. Если число констант в массиве больше значения параметра, GPORCA не преобразует предикат в дизъюнктивно-нормальную форму во время оптимизации.

По умолчанию 100.

Например, если GPORCA выполняет запрос с выражением IN с более чем 100 элементами, предикат не преобразуется в дизъюнктивно-нормальную форму для экономии времени и памяти. Разницу в обработке запроса можно увидеть в плане с помощью команды EXPLAIN.

Изменение параметра определяет баланс между скоростью оптимизации и уменьшением потребления памяти и выгодой от вывода ограничений (конфликты, исключение партиций).

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

integer > 0

100

master

user

optimizer_cost_model

При использовании GPORCA (по умолчанию) параметр контролирует модель затрат, которую GPORCA выбирает для bitmap-сканирований с bitmap-индексами или индексами B-дерево на AO-таблицах.

  • legacy — сохраняет откалиброванную модель затрат GPORCA из устаревших версий.

  • calibrated — улучшает оценки затрат для индексов.

  • experimental — зарезервировано для будущих экспериментальных моделей затрат; сейчас эквивалентно calibrated.

Модель по умолчанию calibrated чаще выбирает bitmap-индекс с соединениями вложенными циклами вместо хеш-соединений.

Диапазон значений Значение по умолчанию Область определения Контекст

legacy
calibrated
experimental

calibrated

master

user

optimizer_cte_inlining_bound

При использовании GPORCA (по умолчанию) контролирует объем инлайнинга для запросов с общими табличными выражениями (CTE) (запросы с выражением WITH). По умолчанию 0 — инлайнинг отключен.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

user

optimizer_dpe_stats

При использовании GPORCA (по умолчанию) и значении параметра true (по умолчанию) GPORCA выводит статистику для более точной оценки количества сканируемых строк при динамическом исключении партиций.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_discard_redistribute_hashjoin

При использовании GPORCA (по умолчанию) определяет, должен ли GPORCA исключать планы с операторами хеш-соединений (HashJoin) и дочерним перераспределением (Redistribute Motion). Исключение таких планов улучшает производительность при сильном перекосе данных по ключам соединения.

Значение по умолчанию off — GPORCA рассматривает все планы. При проблемах производительности хеш-соединений и значительном перекосе данных установите on для исключения таких планов.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_enable_dml

При использовании GPORCA (по умолчанию) и значении параметра true (по умолчанию) GPORCA пытается выполнить DML-команды (INSERT, UPDATE, DELETE). При невозможности Greengage DB откатывается к планировщику Postgres.

При false для DML всегда используется планировщик Postgres.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_enable_hashjoin

При использовании GPORCA (по умолчанию) и значении параметра true (по умолчанию) GPORCA генерирует все типы планов с хеш-соединениями, кроме полных хеш-соединений. В том числе: внутренние, левые, правые, левые полусоединения (left semi), левые антисоединения (left anti semi). Улучшает производительность для больших неиндексированных таблиц.

При значении false планы с хеш-соединениями не генерируются.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_enable_indexonlyscan

При использовании GPORCA (по умолчанию) и значении параметра true (по умолчанию) GPORCA генерирует index-only scan планы для B-tree индексов. GPORCA обращается только к значениям индекса, а не к блокам данных таблицы. Ускоряет выполнение запросов, особенно для вакуумированных таблиц с широкими столбцами без необходимости чтения блоков.

При false index-only scan планы не генерируются.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_enable_master_only_queries

При использовании GPORCA (по умолчанию) разрешает GPORCA выполнять запросы к системному каталогу только на мастере. При значении по умолчанию off только планировщик Postgres выполняет такие запросы.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

ПРИМЕЧАНИЕ

Включение этого параметра снижает производительность коротких запросов к системному каталогу. Устанавливайте только на уровне сессии или запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_enable_multiple_distinct_aggs

При использовании GPORCA (по умолчанию) поддерживает агрегаты с множественными условиями DISTINCT, например SELECT count(DISTINCT a), sum(DISTINCT b) FROM foo. По умолчанию параметр выключен, поскольку такие планы обычно менее эффективны, чем у планировщика Postgres.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_enforce_subplans

При использовании GPORCA (по умолчанию) параметр контролирует принудительное планирование запросов со скалярными подзапросами как подпланов (subplan).

По умолчанию off. В этом случае GPORCA может спланировать скалярный подзапрос как соединение вложенными циклами при некоррелированном или декоррелированном подзапросе. При значении on GPORCA не использует соединения и всегда планирует скалярный подзапрос как подпланом.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_force_agg_skew_avoidance

При использовании GPORCA (по умолчанию) влияет на рассмотрение вариантов планов при генерации трехстадийных планов агрегации.

При true (по умолчанию) GPORCA рассматривает только планы, где промежуточная агрегация использует столбцы GROUP BY и DISTINCT для распределения, снижая эффект перекоса обработки.

При false GPORCA также рассматривает планы с распределением по столбцам GROUP BY. Такие планы могут работать плохо при перекосе обработки.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_force_comprehensive_join_implementation

При использовании GPORCA (по умолчанию) влияет на выбор между альтернативами с соединениями вложенными циклами и хеш-соединениями.

По умолчанию false — GPORCA не рассматривает планы с соединениями вложенными циклами при наличии альтернатив с хеш-соединениями, значительно улучшая производительность оптимизации для большинства запросов. При true GPORCA исследует альтернативы с соединениями вложенными циклами даже при наличии вариантов с хеш-соединениями.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

user

optimizer_force_multistage_agg

При настройках по умолчанию (используется GPORCA, значение параметра — false) GPORCA выбирает по стоимости между одно- и двухстадийным планом агрегации для скалярных агрегатов с выражением DISTINCT. При true выбирает многостадийный план при наличии такой альтернативы.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

false

master

user

optimizer_force_three_stage_scalar_dqa

При настройках по умолчанию (используется GPORCA, значение параметра — true), GPORCA выбирает план с многостадийными агрегациями при его наличии. При false GPORCA выбирает план по стоимости, а не эвристике.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_nestloop_factor

Добавляет коэффициент затрат GPORCA для приоритизации хеш-соединений над соединениями вложенными циклами при оптимизации запроса. Значение по умолчанию 1024 выбрано после тестирования рабочих нагрузок с равномерно распределенными данными. 1024 — практический верхний предел. Если GPORCA выбирает планы с хеш-соединений чаще, чем нужно, уменьшите значение в пользу соединений вложенными циклами.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

double >= 1.0

1024

master

user

optimizer_penalize_broadcast_threshold

При использовании GPORCA (по умолчанию) во время оптимизации GPORCA увеличивает стоимость планов с широковещательной отправкой (Broadcast Motion) более чем optimizer_penalize_broadcast_threshold строк. По умолчанию 100000. При 0 порог неограничен, широковещательная отправка не штрафуется.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

100000

master

user

optimizer_penalize_skew

При использовании GPORCA (по умолчанию) позволяет GPORCA штрафовать локальную стоимость хеш-соединения с дочерним Redistribute Motion при наличии перекоса, отдавая предпочтение Broadcast Motion. По умолчанию true.

GPORCA считает, что в Redistribute Motion присутствует перекос, если число различных значений меньше количества сегментов.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_print_missing_stats

При использовании GPORCA (по умолчанию) контролирует отображение информации об отсутствии статистики для столбцов таблиц в запросе. По умолчанию true — информация о столбцах отображается клиенту. При false информация не отправляется.

Информация отображается при выполнении запроса или командах EXPLAIN и EXPLAIN ANALYZE.

Параметр можно задать на уровне всей системы, базы или сессии.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

optimizer_print_optimization_stats

При использовании GPORCA (по умолчанию) включает логирование статистики оптимизации GPORCA для стадий оптимизации запроса. По умолчанию off — статистика не логируется. Для логирования статистики оптимизации параметр должен быть включен (on) и client_min_messages должен иметь значение log.

  • SET optimizer_print_optimization_stats = on;

  • SET client_min_messages = 'log';

Информация логируется при выполнении запроса или EXPLAIN и EXPLAIN ANALYZE.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

optimizer_skew_factor

При использовании GPORCA (по умолчанию) optimizer_skew_factor контролирует вычисление коэффициента перекоса.

По умолчанию 0 — вычисление перекоса отключено для GPORCA. Для включения установите значение от 1 до 100.

Чем больше optimizer_skew_factor, тем выше стоимость хеш-соединений c Redistribute Motion, что заставляет GPORCA отдавать предпочтение хеш-соединениям c Broadcast Motion.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

0 — 100

0

master

user

optimizer_sort_factor

При использовании GPORCA (по умолчанию) optimizer_sort_factor контролирует коэффициент затрат для операций сортировки при оптимизации запроса. Значение по умолчанию — 1 — стандартный коэффициент затрат сортировки. Значение — относительное увеличение или уменьшение от коэффициента по умолчанию. Например, 2.0 — увеличить в два раза, 0.5 — уменьшить в два раза.

Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.

Диапазон значений Значение по умолчанию Область определения Контекст

decimal > 0

1.0

master

user

optimizer_use_gpdb_allocators

При использовании GPORCA (по умолчанию) и значении true (по умолчанию) GPORCA использует управление памятью Greengage DB при выполнении запросов. При false — собственное управление памятью GPORCA. Управление памятью Greengage DB ускоряет оптимизацию, снижает потребление памяти и лучше поддерживает vmem-лимиты.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

postmaster

optimizer_xform_bind_threshold

При использовании GPORCA (по умолчанию) контролирует максимальное количество привязок на трансформацию, создаваемых GPORCA на групповое выражение. Ограничение снижает количество альтернатив GPORCA, во многих случаях уменьшая время оптимизации и потребление памяти для глубоко вложенных выражений.

По умолчанию 0 — неограниченное количество привязок.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 0

0

master

user

verify_gpfdists_cert

При определении внешней таблицы Greengage DB с протоколом gpfdists для SSL-безопасности контролирует включение аутентификации SSL-сертификата. Независимо от параметра Greengage DB всегда шифрует данные, которые читаются или записываются во внешние таблицы с gpfdists.

По умолчанию true — SSL-аутентификация используется при взаимодействии с gpfdist для чтения или записи во внешние источники данных.

false отключает аутентификацию SSL-сертификата. Игнорируются:

  • Самоподписанный сертификат gpfdist является недоверенным для Greengage DB.

  • Имя хоста в сертификате не совпадает с хостом, на котором работают gpfdist.

Этот параметр можно отключить для тестирования связи между внешней таблицей и утилитой gpfdist.

ВНИМАНИЕ

Отключение аутентификации SSL-сертификата gpfdists создает риск безопасности.

Подробнее об использовании gpfdist см. Использование gpfdist.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

true

master

user

vmem_process_interrupt

Включает проверку прерываний перед резервированием vmem для SQL-запроса во время выполнения в Greengage DB. Перед резервированием проверяется наличие ожидающей отмены запроса или других прерываний в сессии. Обеспечивает более отзывчивую обработку прерываний, включая отмену запросов. По умолчанию off.

Диапазон значений Значение по умолчанию Область определения Контекст

boolean

off

master

user

xid_stop_limit

Количество идентификаторов транзакций до того ID, при котором произойдет зацикливание (transaction ID wraparound). При достижении Greengage DB прекращает создание новых транзакций для предотвращения потери данных.

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 10000000

100000000

local

postmaster

xid_warn_limit

Количество ID транзакций до лимита xid_stop_limit. При достижении Greengage DB выдает предупреждение выполнить VACUUM для предотвращения потери данных от зацикливания (transaction ID wraparound).

Диапазон значений Значение по умолчанию Область определения Контекст

integer >= 10000000

500000000

local

postmaster