Конфигурационные параметры сервера (GUC)
- application_name
- archive_command
- archive_mode
- array_nulls
- authentication_timeout
- backslash_quote
- block_size
- bonjour_name
- check_function_bodies
- client_connection_check_interval
- client_encoding
- client_min_messages
- cpu_index_tuple_cost
- cpu_operator_cost
- cpu_tuple_cost
- cursor_tuple_fraction
- data_checksums
- data_directory
- DateStyle
- db_user_namespace
- deadlock_timeout
- debug_assertions
- debug_pretty_print
- debug_print_parse
- debug_print_plan
- debug_print_prelim_plan
- debug_print_rewritten
- debug_print_slice_table
- default_statistics_target
- default_tablespace
- default_text_search_config
- default_transaction_deferrable
- default_transaction_isolation
- default_transaction_read_only
- dynamic_library_path
- effective_cache_size
- enable_bitmapscan
- enable_groupagg
- enable_hashagg
- enable_hashjoin
- enable_indexonlyscan
- enable_indexscan
- enable_mergejoin
- enable_nestloop
- enable_seqscan
- enable_sort
- enable_tidscan
- escape_string_warning
- explain_memory_verbosity
- extra_float_digits
- from_collapse_limit
- gp_adjust_selectivity_for_outerjoins
- gp_appendonly_compaction_threshold
- gp_autostats_allow_nonowner
- gp_autostats_mode
- gp_autostats_mode_in_functions
- gp_autostats_on_change_threshold
- gp_cached_segworkers_threshold
- gp_command_count
- gp_connection_send_timeout
- gp_contentid
- gp_count_host_segments_using_address
- gp_create_table_random_default_distribution
- gp_dbid
- gp_debug_linger
- gp_default_storage_options
- gp_dispatch_keepalives_count
- gp_dispatch_keepalives_idle
- gp_dispatch_keepalives_interval
- gp_dtx_recovery_interval
- gp_dtx_recovery_prepared_period
- gp_dynamic_partition_pruning
- gp_enable_agg_distinct
- gp_enable_agg_distinct_pruning
- gp_enable_direct_dispatch
- gp_enable_exchange_default_partition
- gp_enable_fast_sri
- gp_enable_global_deadlock_detector
- gp_enable_gpperfmon
- gp_enable_groupext_distinct_gather
- gp_enable_groupext_distinct_pruning
- gp_enable_minmax_optimization
- gp_enable_multiphase_agg
- gp_enable_predicate_propagation
- gp_enable_preunique
- gp_enable_query_metrics
- gp_enable_relsize_collection
- gp_enable_sort_distinct
- gp_enable_sort_limit
- gp_external_enable_exec
- gp_external_enable_filter_pushdown
- gp_external_max_segs
- gp_fts_mark_mirror_down_grace_period
- gp_fts_probe_interval
- gp_fts_probe_retries
- gp_fts_probe_timeout
- gp_fts_replication_attempt_count
- gp_global_deadlock_detector_period
- gp_gpperfmon_send_interval
- gp_hashjoin_tuples_per_bucket
- gp_initial_bad_row_limit
- gp_instrument_shmem_size
- gp_interconnect_address_type
- gp_interconnect_cursor_ic_table_size
- gp_interconnect_debug_retry_interval
- gp_interconnect_fc_method
- gp_interconnect_min_retries_before_timeout
- gp_interconnect_min_rto
- gp_interconnect_proxy_addresses
- gp_interconnect_queue_depth
- gp_interconnect_setup_timeout
- gp_interconnect_snd_queue_depth
- gp_interconnect_tcp_listener_backlog
- gp_interconnect_timer_checking_period
- gp_interconnect_timer_period
- gp_interconnect_transmit_timeout
- gp_interconnect_type
- gp_keep_partition_children_locks
- gp_log_format
- gp_log_suboverflow_statements
- gp_max_local_distributed_cache
- gp_max_packet_size
- gp_max_partition_level
- gp_max_plan_size
- gp_max_scan_on_shmem
- gp_max_slices
- gp_max_system_slices
- gp_motion_cost_per_row
- gp_print_create_gang_time
- gp_reject_percent_threshold
- gp_reraise_signal
- gp_resgroup_memory_policy
- gp_resource_group_bypass
- gp_resource_group_bypass_catalog_query
- gp_resource_group_cpu_ceiling_enforcement
- gp_resource_group_cpu_limit
- gp_resource_group_cpu_priority
- gp_resource_group_enable_recalculate_query_mem
- gp_resource_group_memory_limit
- gp_resource_group_move_timeout
- gp_resource_group_queuing_timeout
- gp_resource_manager
- gp_resqueue_memory_policy
- gp_resqueue_priority
- gp_resqueue_priority_cpucores_per_segment
- gp_resqueue_priority_sweeper_interval
- gp_role
- gp_safefswritesize
- gp_segment_connect_timeout
- gp_segments_for_planner
- gp_server_version
- gp_server_version_num
- gp_session_id
- gp_set_proc_affinity
- gp_statistics_pullup_from_child_partition
- gp_statistics_use_fkeys
- gp_track_pending_delete
- gp_vmem_idle_resource_timeout
- gp_vmem_protect_limit
- gp_vmem_protect_segworker_cache_limit
- gp_workfile_compression
- gp_workfile_compression_overhead_limit
- gp_workfile_limit_files_per_query
- gp_workfile_limit_per_query
- gp_workfile_limit_per_segment
- gpfdist_retry_timeout
- gpperfmon_port
- ignore_checksum_failure
- integer_datetimes
- IntervalStyle
- join_collapse_limit
- krb_caseins_users
- krb_server_keyfile
- lc_collate
- lc_ctype
- lc_messages
- lc_monetary
- lc_numeric
- lc_time
- listen_addresses
- local_preload_libraries
- lock_timeout
- log_autostats
- log_autovacuum_min_duration
- log_checkpoints
- log_connections
- log_disconnections
- log_dispatch_stats
- log_duration
- log_error_verbosity
- log_executor_stats
- log_hostname
- log_lock_waits
- log_min_duration_statement
- log_min_error_statement
- log_min_messages
- log_parser_stats
- log_planner_stats
- log_rotation_age
- log_rotation_size
- log_statement
- log_statement_stats
- log_temp_files
- log_timezone
- log_truncate_on_rotation
- logging_collector
- maintenance_work_mem
- max_appendonly_tables
- max_connections
- max_files_per_process
- max_function_args
- max_identifier_length
- max_index_keys
- max_locks_per_transaction
- max_prepared_transactions
- max_resource_portals_per_transaction
- max_resource_queues
- max_slot_wal_keep_size
- max_stack_depth
- max_statement_mem
- memory_spill_ratio
- optimizer
- optimizer_analyze_root_partition
- optimizer_control
- optimizer_enable_associativity
- optimizer_enable_dynamicbitmapscan
- optimizer_enable_dynamicindexscan
- optimizer_enable_orderedagg
- optimizer_enable_right_outer_join
- optimizer_enable_replicated_table
- optimizer_join_arity_for_associativity_commutativity
- optimizer_join_order
- optimizer_join_order_threshold
- optimizer_mdcache_size
- optimizer_metadata_caching
- optimizer_minidump
- optimizer_parallel_union
- password_encryption
- password_hash_algorithm
- plan_cache_mode
- pljava_classpath
- pljava_classpath_insecure
- pljava_release_lingering_savepoints
- pljava_statement_cache_size
- pljava_vmoptions
- port
- quote_all_identifiers
- random_page_cost
- readable_external_table_timeout
- repl_catchup_within_range
- resource_cleanup_gangs_on_wait
- resource_select_only
- runaway_detector_activation_percent
- search_path
- seq_page_cost
- server_encoding
- server_version
- server_version_num
- shared_buffers
- shared_preload_libraries
- ssl
- ssl_ciphers
- standard_conforming_strings
- statement_mem
- statement_timeout
- stats_queue_level
- superuser_reserved_connections
- tcp_keepalives_count
- tcp_keepalives_idle
- tcp_keepalives_interval
- temp_buffers
- temp_file_limit
- temp_spill_files_tablespaces
- temp_tablespaces
- TimeZone
- timezone_abbreviations
- track_activities
- track_activity_query_size
- track_counts
- transaction_isolation
- transaction_read_only
- transform_null_equals
- unix_socket_directories
- unix_socket_group
- unix_socket_permissions
- update_process_title
- vacuum_cost_delay
- vacuum_cost_limit
- vacuum_cost_page_dirty
- vacuum_cost_page_hit
- vacuum_cost_page_miss
- vacuum_freeze_min_age
- wait_for_replication_threshold
- wal_keep_segments
- wal_receiver_status_interval
- wal_sender_archiving_status_interval
- wal_sender_timeout
- work_mem
- writable_external_table_bufsize
- xmlbinary
- xmloption
- Параметры разработки
- dtx_phase2_retry_count
- enable_implicit_timeformat_YYYYMMDDHH24MISS
- gp_add_column_inherits_table_setting
- gp_appendonly_compaction
- gp_eager_two_phase_agg
- gp_enable_segment_copy_checking
- gpperfmon_log_alert_level
- gp_log_endpoints
- gp_log_fts
- gp_log_interconnect
- gp_log_gang
- gp_log_resqueue_priority_sleep_time
- gp_max_parallel_cursors
- gp_recursive_cte
- gp_enable_explain_allstat
- gp_retrieve_conn
- gp_session_role
- gp_use_legacy_hashops
- log_file_mode
- optimizer_array_expansion_threshold
- optimizer_cost_model
- optimizer_cte_inlining_bound
- optimizer_dpe_stats
- optimizer_discard_redistribute_hashjoin
- optimizer_enable_dml
- optimizer_enable_hashjoin
- optimizer_enable_indexonlyscan
- optimizer_enable_master_only_queries
- optimizer_enable_multiple_distinct_aggs
- optimizer_enforce_subplans
- optimizer_force_agg_skew_avoidance
- optimizer_force_comprehensive_join_implementation
- optimizer_force_multistage_agg
- optimizer_force_three_stage_scalar_dqa
- optimizer_nestloop_factor
- optimizer_penalize_broadcast_threshold
- optimizer_penalize_skew
- optimizer_print_missing_stats
- optimizer_print_optimization_stats
- optimizer_skew_factor
- optimizer_sort_factor
- optimizer_use_gpdb_allocators
- optimizer_xform_bind_threshold
- verify_gpfdists_cert
- vmem_process_interrupt
- xid_stop_limit
- xid_warn_limit
Эта страница содержит список параметров конфигурации сервера 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 |
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 |
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 |
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
Устанавливает формат отображения дат и времени, а также правила интерпретации неоднозначных введенных значений даты. Переменная содержит две независимые компоненты: спецификацию формата вывода и спецификацию порядка год/месяц/день для ввода/вывода.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
где:
|
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 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 |
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_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 |
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 для информации об опциях хранения таблицы.
Значения по умолчанию можно задать для базы данных и пользователя. При задании параметра на разных уровнях используется следующий порядок приоритета (от высшего к низшему), когда пользователь подключается к базе данных и создает таблицы:
-
Значения, указанные в команде
CREATE TABLEс выражениемWITHилиENCODING. -
Значение
gp_default_storage_options, заданное для пользователя командой ALTER ROLE … SET. -
Значение
gp_default_storage_options, заданное для базы командой ALTER DATABASE … SET. -
Значение
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 — |
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 |
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 |
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 |
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
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 |
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 |
local |
postmaster |
gp_resqueue_memory_policy
Параметр gp_resqueue_memory_policy применяется только при управлении ресурсами через ресурсные очереди.
Включает функции управления памятью Greengage DB.
Алгоритм eager_free использует то, что операторы не работают одновременно.
План запроса разделяется на стадии: память каждой стадии освобождается при ее завершении и передается следующей.
При значении auto — использование памяти контролируется через statement_mem и лимиты очередей.
При значении none — функции отключены.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
none |
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 |
DISPATCH (мастер) |
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.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
Версия строкой. Пример: |
Фактическая версия |
read only |
internal |
gp_server_version_num
Версия сервера в виде целого числа. Это число гарантированно возрастает и может использоваться для сравнений. Мажорная версия выводится как есть, а минорная и патч — с дополнением нулями до двух цифр.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
|
Фактическая версия |
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 при значении DateStyleISO. -
postgres_verbose— вывод соответствует PostgreSQL до 8.4 при значениях DateStyle, отличных отISO. -
iso_8601— вывод соответствует формату ISO 8601 (раздел 4.4.3.2).
Подробнее см. в разделе Date/Time Types документации PostgreSQL.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
postgres |
postgres |
master |
user |
join_collapse_limit
Планировщик Postgres переписывает явные выражения JOIN в списки FROM-элементов, если размер итогового возвращаемого списка не превышает это значение.
По умолчанию равно from_collapse_limit, что подходит для большинства случаев.
Значение 1 запрещает переупорядочивание JOIN.
Значения между 1 и from_collapse_limit — компромисс времени планирования и качества плана (более высокие значения приводят к лучшим планам).
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
1 — |
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.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
|
* |
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 |
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 миллисекунд или дольше.
Полезно для поиска неоптимизированных запросов.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
число миллисекунд |
-1 |
master |
superuser |
log_min_error_statement
Контролирует логирование SQL-операторов, вызвавших ошибки.
Логируются все операторы указанного уровня и выше.
По умолчанию ERROR.
Для отключения логирования операторов, вызывающих ошибки, установите значение PANIC.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
DEBUG5 |
ERROR |
master |
superuser |
log_min_messages
Контролирует уровни сообщений, записываемых в лог сервера. Каждый уровень включает все последующие. Чем ниже уровень, тем меньше сообщений.
Если установлено расширение PL/Container, параметр также контролирует его уровень логов. См. PL/Container.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
DEBUG5 |
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 — |
1048576 |
local |
sighup |
log_statement
Контролирует логирование SQL-операторов:
-
DDL— команды определения данных (CREATE,ALTER,DROP). -
MOD— команды уровняDDL, а такжеINSERT,UPDATE,DELETE,TRUNCATE,COPY FROM.
PREPARE и EXPLAIN ANALYZE логируются в соответствии с их внутренними командами.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
NONE |
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 на мастере |
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_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 |
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 |
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 |
MD5 |
master |
superuser |
plan_cache_mode
Подготовленные операторы (явные или неявные, например сгенерированные PL/pgSQL) могут выполняться частными (custom) или общими (generic) планами.
Частные планы создаются отдельно для каждого исполнения на основе его конкретных параметров, а общие не используют значения параметров и могут быть переиспользованы для нескольких исполнений.
Использование общих планов сокращает время планирования, но если самый лучший план сильно зависит от значений параметров, общий план может быть неоптимальным.
Обычно выбор между этими вариантами делается автоматически, но это можно переопределить параметром plan_cache_mode.
Для подготовленных операторов без параметров всегда используются общие планы.
Значения: auto (по умолчанию), force_custom_plan и force_generic_plan.
Параметр применяется при запуске кешированного плана, а не при подготовке.
Параметр можно задать на уровне всей системы, базы, сессии или SQL-запроса.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
auto |
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 — |
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_limit10, 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 > |
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_limit8192MB(8 ГБ) и расчетном числе параллельных запросов не более 40 с буфером 10% значениеstatement_memбудет следующим:(8GB * 0.9) / 40 = 0.18GB = 184MB
При изменении max_statement_mem и statement_mem сначала измените max_statement_mem или укажите его первым в postgresql.conf.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
число килобайт не более |
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 — |
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):
-
Скопируйте Default из $GPHOME/share/postgresql/timezonesets/ в новый файл custom. Добавьте часовой пояс WIB из Asia.txt в custom.
-
Скопируйте custom в $GPHOME/share/postgresql/timezonesets/ на мастер-хосте и сегмент-хостах Greengage DB.
-
Установите
timezone_abbreviations = custom. -
Перезагрузите конфигурацию сервера (
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 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 (как в командах |
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 — |
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 — |
10 |
master |
sighup |
wal_sender_archiving_status_interval
При включенном зеркалировании и архивировании сегментов Greengage DB задает интервал в миллисекундах, с которым процесс walsender на основном сегменте отправляет сообщения статуса архивирования процессу walreceiver зеркального сегмента.
Значение 0 отключает функцию.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
0 — |
10000 (10 секунд) |
local |
sighup |
wal_sender_timeout
Для зеркалирования мастера Greengage DB задает максимальное время в миллисекундах, которое процесс walsender на активном мастере ждет сообщения статуса от процесса walreceiver на резервном мастере.
При отсутствии сообщения walsender логирует ошибку.
Интервал сообщений walreceiver контролирует параметр wal_receiver_status_interval.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
0 — |
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.
Параметр можно задать на уровне всей системы, базы или сессии.
См. также Работа с XML-данными.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
base64 |
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.
Параметр можно задать на уровне всей системы, базы или сессии.
См. также Работа с XML-данными.
SET XML OPTION { DOCUMENT | CONTENT };
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
document |
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 устанавливает каждый параметр сжатия по приоритету:
-
Настройка сжатия атрибутом
ENCODINGкомандыALTER TABLE. -
Если значение параметра
gp_add_column_inherits_table_setting—on, настройка сжатия изWITHпри создании таблицы. Иначе игнорируется. -
Настройка сжатия из параметра сервера gp_default_storage_options.
-
Настройка сжатия по умолчанию.
Для изменения значения требуется опция --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 |
NONE |
local |
user |
gp_log_endpoints
Управляет записью информации о конечных точках курсоров параллельного получения в лог сервера.
По умолчанию false — без подробностей.
При значении true логируется информация о конечных точках.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
boolean |
false |
master |
superuser |
gp_log_fts
Контролирует детализацию логов процесса обнаружения сбоев (ftsprobe).
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
OFF |
TERSE |
master |
sighup |
gp_log_interconnect
Контролирует объем информации о коммуникации между рабочими процессами сегментов Greengage DB в лог-файле.
По умолчанию TERSE.
Информация записывается в логи мастера и сегментов.
Увеличение логирования влияет на производительность и использование дискового пространства.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
OFF |
TERSE |
master |
user |
gp_log_gang
Контролирует объем информации о создании рабочих процессов SQL-запросов и управлении SQL-запросами, записываемой в лог-файл.
По умолчанию OFF — информация не логируется.
| Диапазон значений | Значение по умолчанию | Область определения | Контекст |
|---|---|---|---|
OFF |
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 |
DISPATCH (мастер) |
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 (как в командах |
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 |
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 |