F.37. online_analyze — обновление статистики после операций INSERT, UPDATE, DELETE или SELECT INTO #

Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику после операций INSERT, UPDATE, DELETE или SELECT INTO в целевых таблицах.

Примечание

Это расширение нельзя использовать с автономными транзакциями и при включённом пуле соединений.

F.37.1. Загрузка модуля #

Чтобы использовать модуль online_analyze, загрузите разделяемую библиотеку:

LOAD 'online_analyze';

F.37.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.37.3. Авторы #

      Фёдор Сигаев