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

Описание оптимизации работы с 1С

Конфигурации, разработанные на базе Платформы 1С, могут взаимодействовать с базой данных СУБД Pangolin только при включенном параметре enable_1C_support = true. В этом режиме система автоматически устанавливает параметры СУБД, необходимые для корректной работы с 1С. Параметры и их значения перечислены в таблице раздела «Поддержка 1С».

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

  1. Оптимизация статистики и планирования запросов:

    • сбор статистики для мультистолбцовых индексов с целью лучшего предсказания избирательности мультистолбцовых JOIN;
    • переработка планов для случаев, когда известно, что часть планов возвращает пустые множества;
    • предпочтение хеш-планов при незначительной разнице в стоимости;
    • модификация копирования внутренних структур памяти в ядре СУБД;
    • анализ условий выборки WHERE для индексного сканирования;
    • улучшение расчета избирательности на основе статистики мультистолбцовых ключей;
    • пересмотр расчета оценки стоимости для выражения COALESCE;
    • изменение расчета стоимости выборки одной строки.
  2. Оптимизации обработки JOIN и группировки:

    • изменение JOIN самих на себя по уникальным столбцам (отключается параметром enable_self_join_removal);
    • путь перестановки последовательности группировки по GROUP BY;
    • улучшение алгоритма нечеткого (fuzzy) сопоставления путей выполнения плана в части оценки затрат с использованием индексов;
    • улучшение поиска уникальных слияний при построении плана запроса.
  3. Оптимизации работы с расширениями и строковыми операциями:

    • изменение пути поиска функций like_escape и similar_to_escape при лексическом анализе выражений для использования расширения mchar;
    • добавление поддержки операций над строками mchar;
    • улучшение внутреннего алгоритма подбора уникального названия столбца.
  4. Прочие улучшения:

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