K.4. Дополнительные модули #
K.4.1. Встроенные модули по умолчанию #
Чтобы обеспечить поддержку решений 1C, дистрибутив Postgres Pro содержит следующие встроенные модули, которые включены по умолчанию и не требуют дополнительной настройки:
fasttrun — предоставляет транзакционно-небезопасную функцию для усечения временных таблиц, предотвращающую увеличение размера
pg_class.fulleq — предоставляет дополнительный оператор равенства для совместимости с Microsoft SQL Server.
mchar — предоставляет дополнительные типы данных
MCHARиMVARCHARдля совместимости с Microsoft SQL Server.
K.4.2. pg_trgm_mchar #
pg_trgm_mchar — расширение Postgres Pro, которое обеспечивает быстрый поиск схожих строк типов mchar и mvarchar на основе триграмм. Эти типы данных часто используются для решений 1C.
Чтобы включить поддержку поиска на основе триграмм для этих типов данных, установите pg_trgm_mchar с параметром CASCADE:
CREATE EXTENSION pg_trgm_mchar CASCADE;
Эта команда автоматически устанавливает все необходимые зависимости и включает поиск на основе триграмм для mchar и mvarchar. Это может быть особенно полезно для ускорения обработки динамических списков в решениях 1C.
K.4.3. dbcopies_decoding #
dbcopies_decoding — модуль 1C для обновления копий баз данных, который включён по умолчанию. Для использования механизма логической репликации этого модуля установите для параметра wal_level значение logical.
За более подробной информацией об этом модуле обратитесь в поддержку 1C.
K.4.4. plantuner #
Модуль plantuner позволяет оптимизировать планы выполнения запросов. Чтобы настроить его для решений 1C, выполните следующее:
Добавьте имя библиотеки в переменную
shared_preload_librariesв файлеpostgresql.conf.shared_preload_libraries = 'plantuner'
Установите для параметра
plantuner.fix_empty_tableзначениеonдля улучшения планирования запросов с недавно созданными пустыми таблицами.plantuner.fix_empty_table = on
K.4.5. online_analyze #
Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику для задействованных таблиц после операций INSERT, UPDATE, DELETE, SELECT INTO или COPY.
Примечание
Для версий 1C:Enterprise 8.3.13 и выше необязательно использовать модуль online_analyze. 1C:Enterprise автоматически выполняет команду ANALYZE после каждой вставки во временную таблицу.
Однако включение online_analyze может быть полезным для более старых версий 1C:Enterprise или в особых случаях, например, если фоновые изменения не обеспечивают ожидаемые результаты или оптимизатор часто ошибается в оценке количества строк.
Следующая инструкция полезна, только если вы решите использовать этот модуль.
Чтобы настроить этот модуль, выполните шаги ниже.
Добавьте имя библиотеки в переменную
shared_preload_librariesв файлеpostgresql.conf.shared_preload_libraries = 'online_analyze'
Включите этот модуль.
online_analyze.enable = on
Укажите минимальное число изменений строк, после которого может начаться немедленный анализ.
online_analyze.threshold = 50
Укажите процент от размера таблицы, при котором начнётся немедленный анализ.
online_analyze.scale_factor = 0.1
Выполняйте команду
ANALYZEбезVERBOSE.online_analyze.verbose = off
Включите немедленный анализ для временных таблиц.
online_analyze.table_type = 'temporary'
Укажите минимальный интервал времени между вызовами
ANALYZEдля каждой таблицы, в миллисекундах.online_analyze.min_interval = 10000
K.4.6. auto_dump #
Расширение auto_dump предназначено для сбора данных по длительным и проблемным запросам и последующего воспроизведения этих запросов с целью устранения неполадок.
Чтобы включить и настроить это расширение, выполните следующие действия:
Добавьте
auto_dumpв параметр shared_preload_libraries в файлеpostgresql.conf.shared_preload_libraries = 'auto_dump'
Включите расширение:
auto_dump.enable = on
Перед использованием расширения задайте другие обязательные параметры конфигурации и перезапустите сервер баз данных, чтобы изменения вступили в силу.
K.4.7. Помощь в планировании запросов #
Следующие модули предоставляют функциональность, аналогичную возможностям Microsoft SQL Server. Они помогают улучшить планирование и выполнение запросов, а также упрощают миграцию решений 1C на Postgres Pro.
aqo — расширение для оптимизации запросов на основе машинного обучения, которое улучшает оценку количества строк и качество планов выполнения для сложных запросов. Это может быть особенно полезно для нагрузок типа 1C с большим количеством отчётных и аналитических запросов. Данная функциональность аналогична Adaptive Query Processing (AQP) в Microsoft SQL Server.
pgpro_multiplan— расширение, которое позволяет сохранять планы выполнения запросов и использовать их при последующем выполнении тех же запросов, что помогает избежать повторной оптимизации идентичных запросов. Можно также использовать это расширение, чтобы фиксировать определённый план выполнения, если выбранный планировщиком план по каким-то причинам не подходит. Эта функциональность аналогична возможности заморозки планов в Microsoft SQL Server.