Параметры категории статистики времени выполнения

Документ описывает параметры системной конфигурации, относящиеся к категории статистики времени выполнения.

Примечание!
Для обеспечения стабильности и безопасности системы ручное изменение этих параметров должно выполняться с осторожностью.


Статистика ANALYZE по содержимому базы данных

default_statistics_target


Задаёт целевое значение статистики (количество значений, сохраняемых в списке наиболее часто встречающихся) для столбцов таблиц, для которых не задано специфичное целевое значение через ALTER TABLE ... SET STATISTICS.

  • Более высокие значения могут улучшить качество оценок, делаемых оптимизатором запросов Postgres (планировщиком).
Тип данных Значение по умолчанию Диапазон Классификация настройки
int 100 1 ~ 10000 master; session; reload


Сборщик статистики запросов и индексов

Эти параметры управляют функциями сбора статистики на уровне сервера. Когда сбор статистики включён, собранные данные можно получить через семейства системных представлений pg_stat и pg_statio.

track_activities


Включает сбор информации о текущей команде, выполняемой каждой сессией, а также о времени начала её выполнения.

  • Примечание: Даже при включении эта информация доступна не всем пользователям. Только суперпользователи и пользователь, связанный с отчитывающейся сессией, могут просматривать её. Следовательно, она не представляет угрозы безопасности.
Тип данных Значение по умолчанию Классификация настройки
boolean on master; session; reload; superuser

track_activity_query_size


Задаёт максимальный предел длины текста запроса, сохраняемого в столбце current_query системного каталога pg_stat_activity.

  • Этот параметр может быть задан только при запуске сервера.
Тип данных Значение по умолчанию Диапазон Классификация настройки
int 1024 100 ~ 102400 segment; system; restart


track_counts


Управляет сбором статистики по активности базы данных.

Тип данных Значение по умолчанию Классификация настройки
boolean true master; session; reload; superuser

track_functions


Включает сбор статистики по использованию функций, включая количество вызовов и время выполнения.

  • Укажите pl, чтобы отслеживать только функции процедурных языков; укажите all, чтобы также отслеживать функции SQL и C.
  • Примечание: SQL-функции, достаточно простые для "встраивания" в вызывающий запрос, не отслеживаются независимо от значения этого параметра.
  • Значение по умолчанию — none, что отключает сбор статистики по функциям.
Тип данных Значение по умолчанию Диапазон Классификация настройки
enum none none / pl / all master; session; reload

track_io_timing


Включает измерение времени системных вызовов ввода-вывода.

  • Этот параметр по умолчанию установлен в off, поскольку его включение приводит к многократным запросам операционной системы о текущем времени, что может создать значительную нагрузку на некоторых платформах.
  • Вы можете использовать инструмент pg_test_timing для измерения накладных расходов на тайминг в вашей системе. Информация о тайминге ввода-вывода отображается в pg_stat_database, в выводе EXPLAIN при использовании опции BUFFERS, а также в pg_stat_io.
Тип данных Значение по умолчанию Классификация настройки
boolean off master; session; reload; superuser

stats_queue_level


Собирает статистику по очередям ресурсов, связанную с активностью базы данных.

  • Примечание: Параметр конфигурации сервера stats_queue_level вступает в силу только при включении управления ресурсами через очереди ресурсов.
Тип данных Значение по умолчанию Классификация настройки
boolean off master; session; reload

stats_temp_directory


Задаёт каталог для хранения временных данных статистики.

  • Этот параметр может быть задан как путь относительно каталога данных или как абсолютный путь.
  • Размещение этого каталога на файловой системе, основанной на ОЗУ, может снизить физический ввод-вывод и улучшить производительность.
Тип данных Значение по умолчанию Классификация настройки
string pg_stat_tmp segments; system; reload; superuser


Мониторинг статистики

log_executor_stats


Записывает статистику производительности исполнителя запросов в журнал сервера для каждого запроса.

  • Это примитивный инструмент профилирования. Не может быть включён одновременно с log_statement_stats.
Тип данных Значение по умолчанию Классификация настройки
boolean off segment; system; restart

log_parser_stats


Записывает статистику производительности парсера запросов в журнал сервера для каждого запроса.

  • Это примитивный инструмент профилирования. Не может быть включён одновременно с log_statement_stats.
Тип данных Значение по умолчанию Классификация настройки
boolean off master; session; reload; superuser

log_planner_stats


Записывает статистику производительности оптимизатора запросов Postgres в журнал сервера для каждого запроса.

  • Это примитивный инструмент профилирования. Не может быть включён одновременно с log_statement_stats.
Тип данных Значение по умолчанию Классификация настройки
boolean off master; session; reload; superuser

log_statement_stats


Записывает общую статистику производительности от парсера запросов, оптимизатора и движка выполнения в журнал сервера для каждого запроса.

  • Этот параметр не может быть включён одновременно с любыми другими параметрами статистики по модулям.
Тип данных Значение по умолчанию Классификация настройки
boolean off master; session; reload; superuser


Параметры автоматического сбора статистики

gp_autostats_mode


Определяет режим запуска автоматического сбора статистики с помощью ANALYZE.

  • Опция on_no_stats запускает сбор статистики для любой таблицы без существующей статистики после операций INSERT, UPDATE или DELETE.
  • Опция on_change запускает сбор статистики только тогда, когда количество затронутых строк превышает порог, заданный параметром gp_autostats_on_change_threshold. Операции, которые могут инициировать автоматический сбор статистики: INSERT, UPDATE, DELETE, COPY FROM и CREATE TABLE AS.
  • Опция on_eager_change отслеживает количество изменённых строк в таблице в рамках текущей транзакции. Если количество изменённых строк превышает процентный порог от общего числа строк в таблице (управляется параметром gp_autostats_eager_threshold, значение по умолчанию — 0,1 или 10%), запускается автоматический сбор статистики.
  • Примечание: Для партиционированных таблиц автоматический сбор статистики не запускается при вставке данных через родительскую таблицу верхнего уровня. Он запускается только при прямой вставке данных в листовые дочерние таблицы (где данные физически хранятся). Статистика собирается только на листовых таблицах.
Тип данных Значение по умолчанию Диапазон Классификация настройки
enum none none / on_no_stats / on_change / on_eager_change master; session; reload

gp_autostats_mode_in_functions


Определяет режим запуска автоматического сбора статистики через операторы ANALYZE внутри функций процедурных языков.

  • Опция none отключает сбор статистики; опция on_no_stats запускает сбор статистики для операций INSERT, UPDATE или DELETE, выполняемых внутри функций над таблицами, не имеющими существующей статистики.
  • Опция on_change запускает сбор статистики только тогда, когда количество затронутых строк превышает порог, заданный параметром gp_autostats_on_change_threshold. Операции, которые могут инициировать автоматический сбор статистики: INSERT, UPDATE, DELETE, COPY FROM и CREATE TABLE AS.
Тип данных Значение по умолчанию Диапазон Классификация настройки
enum none none / on_change / on_no_stats master; session; reload

gp_autostats_on_change_threshold


Задаёт порог для автоматического сбора статистики при установке gp_autostats_mode в значение on_change.

  • Когда операция с таблицей затрагивает больше строк, чем этот порог, запланирован оператор ANALYZE и выполняется сбор статистики.
Тип данных Значение по умолчанию Диапазон Классификация настройки
int 2147483647 0 ~ INT_MAX master; session; reload

log_autostats


Записывает информацию о автоматических операциях ANALYZE, связанных с gp_autostats_mode и gp_autostats_mode_in_functions.

Тип данных Значение по умолчанию Классификация настройки
boolean off master; session; reload; superuser