Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику после операций INSERT, UPDATE, DELETE, SELECT INTO или COPY в целевых таблицах.
Не рекомендуется использовать этот модуль с современными версиями 1C.
Однако online_analyze можно включить, если фоновые изменения не обеспечивают ожидаемые результаты или оптимизатор часто ошибается в оценке количества строк.
Следующая инструкция полезна, только если вы решите использовать этот модуль.
Чтобы использовать модуль online_analyze, загрузите разделяемую библиотеку:
LOAD 'online_analyze';
Вы можете настроить online_analyze, используя следующие дополнительные переменные (для них показаны значения по умолчанию):
online_analyze.enable = on
Включает online_analyze.
online_analyze.verbose = on
Выполняет ANALYZE VERBOSE.
Так как verbose является зарезервированным ключевым словом языка SQL, в SQL-запросах данный параметр нужно заключать в кавычки. Например:
ALTER SYSTEM SET "online_analyze.verbose" = 'off';
online_analyze.scale_factor = 0.1
Процент от размера таблицы, при котором начинается немедленный анализ (этот параметр подобен autovacuum_analyze_scale_factor).
online_analyze.threshold = 50
Минимальное число изменений строк, после которого может начаться немедленный анализ (этот параметр подобен autovacuum_analyze_threshold).
online_analyze.min_interval = 10000
Минимальный интервал времени между вызовами ANALYZE для отдельной таблицы (в миллисекундах).
online_analyze.table_type = "all"
Типы таблиц, для которых выполняется немедленный анализ: all (все), persistent (постоянные), temporary (временные), none (никакие).
online_analyze.exclude_tables = ""
Список таблиц, исключаемых из немедленного анализа.
online_analyze.include_tables = ""
Список таблиц, подвергаемых немедленному анализу (параметр online_analyze.include_tables переопределяет online_analyze.exclude_tables).
online_analyze.local_tracking = off
Включает в online_analyze отслеживание временных таблиц в рамках обслуживающего процесса. Когда эта переменная отключена (off), online_analyze использует для временных таблиц системную статистику по умолчанию.
online_analyze.lower_limit = 0
Минимальное число строк в таблиц, при котором будет срабатывать online_analyze.
online_analyze.capacity_threshold = 100000
Максимальное число временных таблиц, сохраняемых в локальном кеше.
Фёдор Сигаев <teodor@sigaev.ru>