Перейти к основному содержимому

Оптимизация производительности в зависимости от архитектуры системы

Сведения

Функциональность доступна только для редакций Enterprise и Enterprise для ERP-систем.

В зависимости от архитектуры системы и возможностей процессора в СУБД могут использоваться дополнительные оптимизации, основанные на SIMD (Single Instruction, Multiple Data). SIMD позволяет выполнять одну и ту же операцию над несколькими элементами данных одновременно и применяется для ускорения внутренних операций при наличии аппаратной поддержки.

Данные оптимизации являются опциональными и управляются параметрами конфигурации.

Сжатие FSM

Использование SIMD позволяет повысить эффективность операций над структурами данных, применяемыми для хранения информации о свободном пространстве (карта свободного пространства, FSM). Оптимизация направлена на обработку большего количества элементов структуры за один шаг.

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

Быстрая сортировка

SIMD-оптимизации применяются для ускорения операций сортировки. Это влияет на выполнение:

  • операций построения индексов;
  • запросов с сортировкой (ORDER BY, GROUP BY);
  • других операций, требующих сортировки данных.

Настройка

Для управления использованием SIMD при сортировке используется параметр конфигурации:

Название параметраТипЗначение по умолчаниюДопустимые значенияОписание
enable_fast_sortbooleanoffon/offВключает SIMD-оптимизированную сортировку. Параметр имеет контекст USERSET, что позволяет изменять его в конфигурационном файле или сессией через SET

Быстрое сопоставление с образцом

Для операций сопоставления с образцом SIMD применяется при выполнении фильтрации и поиска данных, в том числе в запросах, использующих шаблоны. Использование SIMD позволяет сократить время выполнения таких операций на больших наборах данных.

Настройка

Для управления данным механизмом используется параметр конфигурации:

Название параметраТипЗначение по умолчаниюДопустимые значенияОписание
enable_fast_pattern_matchingbooleanoffon/offУправляет использованием SIMD-оптимизаций при операциях сопоставления с образцом. Контекст применения: USERSET

Оптимизации записи WAL

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

Настройка

Для включения механизма используется параметр enable_wal_locking_reduction:

Название параметраТипЗначение по умолчаниюДопустимые значенияОписание
enable_wal_locking_reductionbooleanoffon/offСнижает конкуренцию за блокировки при выделении страниц буфера WAL, позволяя процессам параллельно выделять разные страницы. Контекст применения: PGC_POSTMASTER

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