F.36. online_analyze — обновление статистики после операций INSERT
, UPDATE
, DELETE
или SELECT INTO
#
Модуль online_analyze
предоставляет набор функций, которые немедленно обновляют статистику после операций INSERT
, UPDATE
, DELETE
или SELECT INTO
в целевых таблицах.
Примечание
Это расширение нельзя использовать с автономными транзакциями.
F.36.1. Загрузка модуля #
Чтобы использовать модуль online_analyze
, загрузите разделяемую библиотеку:
LOAD 'online_analyze';
F.36.2. Настройка модуля #
Вы можете настроить 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
Максимальное число временных таблиц, сохраняемых в локальном кеше.
F.36.3. Авторы #
Фёдор Сигаев <teodor@sigaev.ru>