F.30. online_analyze
Модуль online_analyze предоставляет набор функций, которые немедленно обновляют статистику после операций INSERT, UPDATE, DELETE, SELECT INTO или COPY в целевых таблицах.
Примечание
Не рекомендуется использовать этот модуль с современными версиями 1C.
Однако online_analyze можно включить, если фоновые изменения не обеспечивают ожидаемые результаты или оптимизатор часто ошибается в оценке количества строк.
Следующая инструкция полезна, только если вы решите использовать этот модуль.
F.30.1. Загрузка модуля
Чтобы использовать модуль online_analyze, загрузите разделяемую библиотеку:
LOAD 'online_analyze';
F.30.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.30.3. Авторы
Фёдор Сигаев <teodor@sigaev.ru>
F.30. online_analyze
The online_analyze module provides a set of features that immediately update statistics after INSERT, UPDATE, DELETE, SELECT INTO, or COPY operations for the affected tables.
Note
It is not recommended to use this module with modern versions of 1C.
However, you can enable online_analyze if background updates do not provide the desired result or if the optimizer frequently fails to estimate the row count.
The instruction below is relevant only if you decide to use the module.
F.30.1. Module Loading
To use online_analyze module, load the shared library:
LOAD 'online_analyze';
F.30.2. Module Configuration
You can configure online_analyze using the following custom variables (default values are shown):
online_analyze.enable = on
Enables
online_analyze.online_analyze.verbose = on
Executes
ANALYZE VERBOSE.Note
Since
verboseis a reserved SQL key word, this parameter has to be double-quoted when used in SQL queries. For example:ALTER SYSTEM SET "online_analyze.verbose" = 'off';
online_analyze.scale_factor = 0.1
Fraction of table size to start online analysis (similar to autovacuum_analyze_scale_factor).
online_analyze.threshold = 50
Minimum number of row updates before starting online analysis (similar to autovacuum_analyze_threshold).
online_analyze.min_interval = 10000
Minimum time interval between
ANALYZEcalls per table, in milliseconds.online_analyze.table_type = "all"
Type(s) of tables for online analysis. Possible values are:
all,persistent,temporary,none.online_analyze.exclude_tables = ""
List of tables to exclude from online analysis.
online_analyze.include_tables = ""
List of tables to include in online analysis (
online_analyze.include_tablesoverridesonline_analyze.exclude_tables).online_analyze.local_tracking = off
Enables per-backend tracking for temporary tables by
online_analyze. When this variable is set tooff,online_analyzeuses the default system statistics for temporary tables.online_analyze.lower_limit = 0
Minimum number of rows in a table required to trigger
online_analyze.online_analyze.capacity_threshold = 100000
Maximum number of temporary tables to store in local cache.
F.30.3. Authors
Teodor Sigaev <teodor@sigaev.ru>