Данные параметры конфигурации обеспечивают грубый способ
влияния на планы запросов, выбираемые оптимизатором. Если
план, выбранный оптимизатором по умолчанию для конкретного запроса,
не является оптимальным, то временным решением является использование одного
из этих параметров конфигурации для принудительного выбора
оптимизатором другого плана.
К более эффективным способам повышения качества
планов, выбираемых оптимизатором, относится настройка стоимостных параметров планировщика
константы (см. Раздел 3.4.7.2),
выполнение ANALYZE вручную, путем увеличения
значения default_statistics_target параметра конфигурации,
а также увеличения объема собираемой статистики для
конкретных столбцов с помощью команды ALTER TABLE SET
STATISTICS.
enable_async_append (boolean)
#
Включение или отключение использования планировщиком запросов типов планов
append с поддержкой асинхронности. Значение по умолчанию — on.
enable_bitmapscan (boolean)
#
Включение или отключение использования планировщиком запросов типов планов
сканирования по битовой карте (bitmap scan). Значение по умолчанию — on.
enable_gathermerge (boolean)
#
Включение или отключение использования планировщиком запросов типов планов
gather merge. Значение по умолчанию — on.
enable_group_by_reordering (boolean)
#
Управляет тем, будет ли планировщик запросов формировать план, обеспечивающий
GROUP BY ключи, отсортированные в порядке следования ключей
дочерний узел плана, такой как сканирование индекса (index scan). При отключении этого параметра
планировщик запросов сформирует план с GROUP BY
ключами, отсортированными только для соответствия ORDER BY предложению,
если оно имеется. При включении параметра планировщик попытается построить более
эффективный план. Значение по умолчанию — on.
enable_hashagg (boolean)
#
Включает или отключает использование планировщиком запросов агрегирования по хешу (hashed aggregation)
в типах планов. Значение по умолчанию — on.
enable_hashjoin (boolean)
#
Включает или отключает использование планировщиком запросов планов соединения по хешу (hash-join).
сканирования по битовой карте (bitmap scan). Значение по умолчанию — on.
enable_incremental_sort (boolean)
#
Включает или отключает использование планировщиком запросов этапов инкрементальной сортировки.
Значение по умолчанию — on.
enable_indexscan (boolean)
#
Включает или отключает использование планировщиком запросов типов планов index-scan и
index-only-scan. Значение по умолчанию — on.
См. также enable_indexonlyscan.
enable_indexonlyscan (boolean)
#
Включает или отключает использование планировщиком запросов планов типа index-only-scan
типов (см. Раздел 2.8.9).
Значение по умолчанию — on. Параметр
enable_indexscan параметр также должен быть
включен, чтобы планировщик запросов учитывал сканирование только по индексу (index-only scans).
enable_material (boolean)
#
Включает или отключает использование материализации планировщиком запросов.
Полностью исключить использование материализации невозможно,
но отключение данного параметра предотвращает вставку планировщиком
узлов материализации (materialize nodes), за исключением случаев, когда это необходимо для корректности выполнения запроса.
Значение по умолчанию — on.
enable_memoize (boolean)
#
Включает или отключает использование планировщиком запросов планов мемоизации для
кэширования результатов параметризованного сканирования внутри соединений вложенным циклом (nested-loop joins).
Этот тип плана позволяет пропускать сканирование базовых планов, если
результаты для текущих параметров уже находятся в кэше. Реже
запрашиваемые результаты могут быть вытеснены из кэша, когда
требуется место для новых записей. Значение по умолчанию —
on.
enable_mergejoin (boolean)
#
Включает или отключает использование планировщиком запросов плана соединения слиянием (merge-join).
сканирования по битовой карте (bitmap scan). Значение по умолчанию — on.
enable_nestloop (boolean)
#
Включает или отключает использование планировщиком запросов планов
соединения вложенным циклом (nested-loop join). Полностью исключить соединения вложенным циклом невозможно,
но отключение данного параметра препятствует использованию планировщиком таких планов
один, если доступны другие методы. Значение по умолчанию —
on.
enable_parallel_append (boolean)
#
Включает или отключает использование планировщиком запросов механизмов с поддержкой параллелизма для
append с поддержкой асинхронности. Значение по умолчанию — on.
enable_parallel_hash (boolean)
#
Включает или отключает использование планировщиком запросов планов соединения по хешу (hash-join).
типов данных с параллельным хэшированием. Параметр не имеет эффекта, если планы соединения по хэшу также не
включены. Значение по умолчанию — on.
enable_partition_pruning (boolean)
#
Включает или отключает возможность планировщика запросов исключать
секции секционированной таблицы из планов запросов. Данный параметр также управляет
способностью планировщика формировать планы запросов, позволяющие
исполнителю запросов удалять (игнорировать) секции в процессе выполнения запроса. Значение
по умолчанию — on.
См. Раздел 2.2.12.4 для получения подробной информации.
enable_partitionwise_join (boolean)
#
Включает или отключает использование планировщиком запросов соединения по секциям (partitionwise join),
которое позволяет выполнять соединение секционированных таблиц посредством
сопоставления соответствующих секций. Соединение по секциям в настоящее время применяется
только в тех случаях, когда условия соединения включают все ключи секционирования, которые
должны иметь идентичный тип данных и обладать взаимно однозначным соответствием наборов
дочерних секций. При включении данного параметра количество узлов
использование памяти которых ограничено параметром work_mem
присутствующих в итоговом плане, может увеличиваться линейно в соответствии с
количеством сканируемых секций. Это может привести к значительному
увеличению общего потребления памяти при выполнении
запроса. Планирование запросов также становится значительно более затратным в
плане использования памяти и ресурсов центрального процессора. Значение по умолчанию — off.
enable_partitionwise_aggregate (boolean)
#
Включает или отключает использование планировщиком запросов механизма группировки или
агрегации по секциям, что позволяет выполнять группировку или агрегацию в секционированных
таблицах отдельно для каждой секции. Если
GROUP BY предложение не содержит ключи
секционирования, для каждой секции может быть выполнена только частичная агрегация,
а окончательная обработка должна выполняться позже. При включении данного
параметра количество узлов, использование памяти которых ограничено параметром
work_mem присутствующих в итоговом плане, может увеличиваться
линейно в соответствии с количеством сканируемых секций. Это
может привести к значительному увеличению общего потребления памяти в процессе
выполнение запроса. Планирование запросов также становится значительно
более ресурсоемким с точки зрения использования памяти и центрального процессора. Значение по умолчанию —
off.
enable_presorted_aggregate (boolean)
#
Управляет тем, будет ли планировщик запросов формировать план, обеспечивающий
строк, предварительно отсортированных в порядке, необходимом для
ORDER BY / DISTINCT агрегатных
функций. При отключении данного параметра планировщик запросов будет формировать план, который
всегда будет требовать от исполнителя выполнения сортировки перед
агрегированием для каждой агрегатной функции, содержащей
ORDER BY или DISTINCT предложение.
При включении данного параметра планировщик попытается создать более эффективный план,
обеспечивающий подачу на вход агрегатных функций данных, предварительно отсортированных в
порядке, требуемом для агрегирования. Значение по умолчанию —
on.
enable_seqscan (boolean)
#
Включает или отключает использование планировщиком запросов планов типа
«последовательное сканирование» (sequential scan). Полностью исключить последовательное сканирование невозможно,
однако отключение данной переменной препятствует выбору планировщиком этого метода.
от его использования при наличии других доступных методов. Параметр
по умолчанию — on.
enable_sort (boolean)
#
Включает или отключает использование планировщиком запросов этапов явной
сортировки. Полностью исключить явные сортировки невозможно,
однако отключение данного параметра препятствует тому, чтобы планировщик
использовал их, если доступны другие методы. По умолчанию
не является on.
enable_tidscan (boolean)
#
Включает или отключает использование планировщиком запросов TID
типов плана сканирования. Значение по умолчанию — on.
Параметры стоимости, описанные в данном разделе, измеряются в произвольной шкале. Значение имеют только их относительные величины, поэтому масштабирование всех параметров на один и тот же коэффициент не приведет к изменению выбора планировщика. По умолчанию значения этих переменных стоимости основаны на стоимости последовательного чтения страниц; то есть,
seq_page_cost традиционно устанавливается в значение 1.0
а остальные переменные стоимости определяются относительно него. При
желании можно использовать и другую шкалу, например, фактическое время выполнения
в миллисекундах на конкретном оборудовании.
К сожалению, четко определенного метода определения идеальных значений для параметров стоимости не существует. Их целесообразно рассматривать как средние значения для всей совокупности запросов, обрабатываемых конкретным экземпляром системы. Это означает, что изменение данных параметров на основе результатов лишь нескольких экспериментов сопряжено с высоким риском.
seq_page_cost (floating point)
#Задает расчетную оценку планировщика для стоимости операции чтения страницы с диска в рамках последовательного сканирования. Значение по умолчанию — 1.0. Данное значение может быть переопределено для таблиц и индексов в конкретном табличном пространстве с помощью установки одноименного параметра табличного пространства (см. ALTER TABLESPACE).
random_page_cost (floating point)
#Задает расчетную оценку планировщика для стоимости произвольного чтения страницы с диска. Значение по умолчанию — 4.0. Данное значение может быть переопределено для таблиц и индексов в конкретном табличном пространстве с помощью установки одноименного параметра табличного пространства (см. ALTER TABLESPACE).
Уменьшение этого значения относительно параметра seq_page_cost
приведет к тому, что система будет отдавать предпочтение сканированию индексов; его увеличение
сделает сканирование индексов относительно более затратным. Вы можете повышать
или понижать оба значения одновременно, чтобы изменить весовую значимость операций дискового ввода-вывода
затраты относительно затрат на ресурсы центрального процессора, которые описываются следующими
параметрами.
Произвольный доступ к механическим дисковым накопителям обычно значительно дороже, чем четырехкратный последовательный доступ. Однако используется более низкое значение по умолчанию (4.0), так как предполагается, что большинство операций произвольного доступа к диску, таких как чтение по индексу, выполняется из кэша. Значение по умолчанию можно рассматривать как моделирование произвольного доступа, который в 40 раз медленнее последовательного, при условии, что 90% операций произвольного чтения будут кэшированы.
Если вы считаете, что коэффициент попадания в кэш 90% является некорректным допущением
для вашей рабочей нагрузки, вы можете увеличить параметр random_page_cost, чтобы более точно
отразить реальную стоимость операций произвольного чтения. Соответственно,
если данные, скорее всего, будут полностью находиться в кэше (например, когда
объем базы данных меньше общего объема оперативной памяти сервера), уменьшение параметра
random_page_cost может быть оправданным. Для систем хранения с низкой стоимостью произвольного
чтения относительно последовательного (например, для твердотельных накопителей) может
также лучше моделируется при меньшем значении параметра random_page_cost,
например, 1.1.
Хотя система позволяет устанавливать значение random_page_cost для
меньшим, чем seq_page_cost, это не имеет физического смысла.
Однако их приравнивание имеет смысл, если база данных
полностью кэширована в оперативной памяти, так как в этом случае отсутствуют издержки
при обращении к страницам не по порядку. Кроме того, в базе данных с интенсивным кэшированием
следует уменьшить оба значения относительно параметров центрального процессора,
поскольку стоимость получения страницы, уже находящейся в оперативной памяти, значительно ниже,
чем обычно.
cpu_tuple_cost (floating point)
#Задает производимую планировщиком оценку стоимости обработки каждой строки в ходе выполнения запроса. Значение по умолчанию — 0.01.
cpu_index_tuple_cost (floating point)
#Задает производимую планировщиком оценку стоимости обработки каждой записи индекса при его сканировании. Значение по умолчанию — 0.005.
cpu_operator_cost (floating point)
#Задает производимую планировщиком оценку стоимости обработки каждого оператора или функции, вызываемых при выполнении запроса. Значение по умолчанию — 0.0025.
parallel_setup_cost (floating point)
#Задает используемую планировщиком оценку стоимости запуска параллельного рабочего процесса. Значение по умолчанию — 1000.
parallel_tuple_cost (floating point)
#Задает используемую планировщиком оценку стоимости передачи одного кортежа от параллельного рабочего процесса другому процессу. Значение по умолчанию — 0.1.
min_parallel_table_scan_size (integer)
#
Задает минимальный объем данных таблицы, подлежащий сканированию,
для возможности применения параллельного сканирования. При параллельном последовательном сканировании
объем сканируемых данных таблицы всегда равен полному размеру
таблицы, однако при использовании индексов объем сканируемых
данных обычно оказывается меньше.
Если данное значение указано без единиц измерения, оно измеряется в блоках,
то есть BLCKSZ байт, обычно 8 Кбайт.
Значение по умолчанию — 8 мегабайт (8 МБ).
min_parallel_index_scan_size (integer)
#
Задает минимальный объем данных индекса, подлежащий сканированию,
для возможности применения параллельного сканирования. Следует учитывать, что параллельное сканирование индекса,
как правило, не затрагивает индекс целиком; данный параметр определяет количество страниц
которые, по мнению планировщика, будут фактически затронуты при сканировании, что
имеет значение. Данный параметр также используется для определения возможности
участия конкретного индекса в параллельной очистке. См.
VACUUM.
Если данное значение указано без единиц измерения, оно измеряется в блоках,
то есть BLCKSZ байт, обычно 8 Кбайт.
Значение по умолчанию составляет 512 килобайт (512 Кбайт).
effective_cache_size (integer)
#
Задает предположение планировщика относительно эффективного размера
дискового кэша, доступного для одного запроса. Этот параметр
учитывается при расчете оценочной стоимости использования индекса; более
высокое значение увеличивает вероятность применения сканирования индекса, а
низкое значение повышает вероятность применения последовательного
сканирования. При установке данного параметра следует учитывать как
Digital Q.DataBaseразделяемые буферы, так и
часть дискового кэша ядра, используемую для
Digital Q.DataBase файлов данных, хотя некоторые
данные могут дублироваться в обоих кэшах. Также необходимо
принимать во внимание ожидаемое количество параллельных запросов к различным
таблицам, поскольку они будут совместно использовать доступный
пространство. Данный параметр не влияет на объем разделяемой
памяти, выделяемой Digital Q.DataBase, и не
резервирует дисковый кэш ядра; он используется исключительно в целях
оценки. Система также не предполагает, что данные остаются в
дисковом кэше между запросами.
Если данное значение указано без единиц измерения, оно измеряется в блоках,
то есть BLCKSZ байт, обычно 8 Кбайт.
Значение по умолчанию — 4 гигабайта (4GB).
(Если значение BLCKSZ не равно 8 Кбайт, значение по умолчанию масштабируется
пропорционально ему.)
jit_above_cost (floating point)
#
Задает пороговую стоимость запроса, выше которой активируется JIT-компиляция, если
она включена (см. Глава 3.15).
Выполнение JIT затрачивает время на планирование, но может
ускорить выполнение запроса.
При установке данного параметра в значение -1 отключает JIT-компиляцию.
Значение по умолчанию — 100000.
jit_inline_above_cost (floating point)
#
Задает пороговую стоимость запроса, выше которой JIT-компиляция выполняет встраивание
функций и операторов. Встраивание увеличивает время планирования, но позволяет
повысить скорость выполнения. Установка данного параметра в значение меньше
чем jit_above_cost.
При установке данного параметра в значение -1 отключает встраивание.
Значение по умолчанию — 500000.
jit_optimize_above_cost (floating point)
#
Задает пороговую стоимость запроса, выше которой JIT-компиляция применяет ресурсоемкие
оптимизации. Проведение такой оптимизации увеличивает время планирования, но может повысить
скорость выполнения. Установка данного параметра в значение меньше
чем jit_above_cost, при этом вряд ли будет
целесообразно устанавливать значение больше
чем jit_inline_above_cost.
При установке данного параметра в значение -1 отключает ресурсоемкие оптимизации.
Значение по умолчанию — 500000.
Генетический оптимизатор запросов (GEQO) представляет собой алгоритм, выполняющий планирование запросов на основе эвристического поиска. Использование данного алгоритма сокращает время планирования сложных запросов (объединяющих большое количество отношений) за счет формирования планов, которые иногда могут уступать планам, полученным с помощью стандартного алгоритма полного перебора. Дополнительная информация приведена в Глава 7.10.
geqo (boolean)
#
Включение или отключение генетической оптимизации запросов.
По умолчанию данный параметр включен. Как правило, не рекомендуется отключать его в
рабочей среде; параметр geqo_threshold обеспечивает
более точную настройку GEQO.
geqo_threshold (integer)
#
Использование генетической оптимизации для планирования запросов, включающих не менее
данного количества FROM элементов. (Обратите внимание, что конструкция
FULL OUTER JOIN считается как один FROM
элемент.) Значение по умолчанию — 12. Для простых запросов целесообразно
использовать стандартный планировщик на основе полного перебора, однако для запросов с
большим количеством таблиц полный перебор занимает слишком много времени, зачастую
превышая потери от выполнения субоптимального плана. Таким образом,
установление порога размера запроса является удобным способом управления
использованием механизма GEQO.
geqo_effort (integer)
#Определяет баланс между временем планирования и качеством плана запроса в GEQO. Данный параметр должен быть целым числом в диапазоне от 1 до 10. Значение по умолчанию — 5. Более высокие значения увеличивают время планирования запроса, но также повышают вероятность выбора наиболее эффективного плана запроса.
geqo_effort не выполняет никаких действий
напрямую; он используется только для вычисления значений по умолчанию для
других параметров, влияющих на поведение GEQO (описанных
ниже). При необходимости можно настроить другие параметры
вручную.
geqo_pool_size (integer)
#
Управляет размером пула, используемого GEQO, то есть
количеством особей в генетической популяции. Значение должно быть
не менее двух; как правило, эффективные значения лежат в диапазоне от 100 до 1000. Если
если параметр установлен в ноль (значение по умолчанию), то подходящее
значение выбирается на основе geqo_effort и
количества таблиц в запросе.
geqo_generations (integer)
#
Определяет количество поколений, используемых GEQO, то есть
количество итераций алгоритма. Это значение должно
быть не меньше единицы, а целесообразные значения лежат в том же диапазоне, что и
размер пула. Если значение установлено в ноль (значение по умолчанию),
то подходящее значение выбирается на основе
geqo_pool_size.
geqo_selection_bias (floating point)
#Определяет смещение выборки, используемое GEQO. Смещение выборки представляет собой селективное давление внутри популяции. Значения могут составлять от 1.50 до 2.00; последнее значение используется по умолчанию.
geqo_seed (floating point)
#Определяет начальное значение генератора случайных чисел, используемого GEQO для выбора случайных путей в пространстве поиска порядка соединений. Значение может варьироваться от нуля (по умолчанию) до единицы. Изменение этого значения меняет набор исследуемых путей соединения и может привести к нахождения более или менее удачного оптимального пути.
default_statistics_target (integer)
#
Устанавливает целевой уровень сбора статистики по умолчанию для столбцов таблицы, для которых не
задано индивидуальное целевое значение с помощью команды ALTER TABLE
SET STATISTICS. Увеличение этого значения увеличивает время, необходимое для
выполнения команды ANALYZE, но может повысить точность
оценок планировщика. Значение по умолчанию — 100. Дополнительные сведения
об использовании статистики Digital Q.DataBase
планировщиком запросов см. в разделе Раздел 2.11.2.
constraint_exclusion (enum)
#
Управляет использованием ограничений таблиц в планировщике запросов для
оптимизации запросов.
Допустимыми значениями параметра constraint_exclusion являются
on (проверять ограничения для всех таблиц),
off (ограничения никогда не проверяются) и
partition (проверка ограничений только для наследуемых
дочерних таблиц и UNION ALL подзапросов).
partition является значением по умолчанию.
Этот параметр часто применяется к традиционным деревьям наследования для повышения
производительности.
Если значение данного параметра позволяет это для конкретной таблицы, планировщик
сопоставляет условия запроса с установленными для таблицы CHECK
-ограничениями и исключает сканирование тех таблиц, для которых условия
противоречат ограничениям. Например:
CREATE TABLE parent(key integer, ...); CREATE TABLE child1000(check (key between 1000 and 1999)) INHERITS(parent); CREATE TABLE child2000(check (key between 2000 and 2999)) INHERITS(parent); ... SELECT * FROM parent WHERE key = 2400;
При включенном механизме исключения по ограничению этот запрос SELECT
не будет выполнять сканирование child1000 в целом, что повышает производительность.
В настоящее время функция исключения ограничений включена по умолчанию только для случаев, часто используемых при реализации секционирования таблиц с помощью деревья наследования. Включение данного параметра для всех таблиц создает дополнительные издержки на планирование, которые весьма заметны при выполнении простых запросов, и в большинстве случаев не приносят пользы для простых запросов. Если у вас отсутствуют таблицы, секционированные с использованием традиционного наследования, вы можете предпочесть полностью отключить данный функционал. (Обратите внимание, что аналогичная функциональность для секционированных таблиц управляется отдельным параметром, enable_partition_pruning.)
Обратитесь к Раздел 2.2.12.5 для разделу за дополнительной информацией об использовании механизма исключения по ограничениям для реализации секционирования.
cursor_tuple_fraction (floating point)
#Задает значение оценки планировщика для доли строк курсора, которые будут получены. Значение по умолчанию составляет 0.1. Меньшие значения данного параметра ориентируют планировщик на использование «быстрый запуск» планы для курсоров, обеспечивающих быстрое извлечение первых нескольких строк, в то время как получение всех строк может занять длительное время. Большие значения параметра делают больший акцент на общем оценочном времени. При максимальном значении параметра 1.0 планирование курсоров выполняется аналогично обычным запросам, с учетом только общего оценочного времени без учета скорости, с которой могут быть получены первые строки.
from_collapse_limit (integer)
#
Планировщик выполняет объединение подзапросов с внешними запросами, если
итоговый FROM список содержит не более
указанного количества элементов. Меньшие значения сокращают время планирования, но могут
приводить к формированию менее эффективных планов запросов. Значение по умолчанию — восемь.
Для получения дополнительной информации см. Раздел 2.11.3.
Установка данного значения в geqo_threshold или более может привести к задействованию планировщика GEQO, результатом чего станет неоптимальный планов. См. Раздел 3.4.7.3.
jit (boolean)
#
Определяет, будет ли JIT использоваться компиляция
Digital Q.DataBase, если доступно (см. Глава 3.15).
Значение по умолчанию — on.
join_collapse_limit (integer)
#
Планировщик будет преобразовывать явные JOIN
конструкции (за исключением FULL JOIN) в списки
FROM элементов во всех случаях, когда размер результирующего списка не превышает данное значение
would result. Меньшие значения сокращают время планирования, но могут
приводить к формированию менее эффективных планов запросов.
По умолчанию значение данной переменной совпадает со значением параметра
from_collapse_limit, что является оптимальным
в большинстве случаев. Установка значения 1 предотвращает любое изменение порядка
явных JOINс. Таким образом, явный порядок соединения,
указанный в запросе, будет фактическим порядком, в котором
выполняется соединение отношений. Поскольку планировщик запросов не всегда выбирает
оптимальный порядок соединения, опытные пользователи могут
временно установить значение данного параметра равным 1, а затем явно указать
желаемый порядок соединения.
Для получения дополнительной информации см. Раздел 2.11.3.
Установка данного значения в geqo_threshold или более может привести к задействованию планировщика GEQO, результатом чего станет неоптимальный планов. См. Раздел 3.4.7.3.
plan_cache_mode (enum)
#
Подготовленные операторы (подготовленные явно либо сформированные
неявно, например, средствами PL/pgSQL) могут выполняться с использованием индивидуальных или
общих планов. Индивидуальные планы формируются заново для каждого выполнения
с применением конкретного набора значений параметров, в то время как общие планы
не зависят от значений параметров и могут использоваться повторно при последующих
выполнениях. Таким образом, использование общего плана сокращает время планирования, однако если
оптимальный план в значительной степени зависит от значений параметров, то
общий план может оказаться неэффективным. Выбор между данными вариантами
обычно осуществляется автоматически, но может быть переопределен
с plan_cache_mode.
Допустимые значения: auto (значение по умолчанию),
force_custom_plan и
force_generic_plan.
Данный параметр учитывается при выполнении кэшированного плана,
а не на этапе его подготовки.
Для получения дополнительной информации см. PREPARE.
recursive_worktable_factor (floating point)
#
Устанавливает расчетную оценку планировщика для среднего размера рабочей
таблицы рекурсивного
запроса, выраженную в виде множителя к оценочному размеру начального
нерекурсивного терма запроса. Это позволяет планировщику выбрать
наиболее подходящий метод соединения рабочей таблицы с
другими таблицами запроса.
Значение по умолчанию — 10.0. Меньшее значение
например, 1.0 может быть эффективно в случаях, когда рекурсия
имеет низкий «коэффициент разветвления» от одного шага к следующему, как,
например, в запросах поиска кратчайшего пути. Запросы графовой аналитики могут
эффективно использовать значения, превышающие установленные по умолчанию.