Перейти к содержимому
Последнее обновление

ANALYZE

Описание​

Эта инструкция используется для сбора статистики по столбцам. Статистику можно собрать для таблицы (с возможностью указать конкретные столбцы) или для всей базы данных.

Синтаксис​

ANALYZE {TABLE <table_name> [ (<column_name> [, ...]) ] | DATABASE <database_name>}
[ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} <sample_rate> ] [ WITH HOT VALUE ] ];

Обязательные параметры​

1. <table_name>

Целевая таблица. Необходимо указать ровно один из параметров: этот или <database_name>.

2. <database_name>

Целевая база данных. Необходимо указать ровно один из параметров: этот или <table_name>.

Необязательные параметры​

1. <column_name>

Целевой столбец. Он должен существовать в table_name. Можно указать несколько имён столбцов, разделив их запятыми.

2. WITH SYNC

Собирать статистику синхронно. Выполнение инструкции завершается после окончания сбора. Если параметр не указан, сбор выполняется асинхронно.

3. WITH SAMPLE {PERCENT | ROWS} <sample_rate>

Собирать статистику по выборке. Если параметр не указан, по умолчанию выполняется полный сбор. <sample_rate> задаёт размер выборки. При использовании PERCENT он задаёт процент строк для выборки, а при использовании ROWS — количество строк в выборке.

4. WITH HOT VALUE

Собирать горячие значения при ручном полном сборе статистики. Горячие значения помогают оптимизатору точнее оценивать предикаты для данных с неравномерным распределением, однако их сбор может потреблять больше памяти для столбцов с высокой кардинальностью. Если этот параметр не указан, Doris сохраняет прежнее поведение: при полном сборе горячие значения не собираются, а при сборе по выборке они собираются всегда. Параметр WITH HOT VALUE отклоняется, если он указан вместе с WITH SAMPLE.

Возвращаемое значение​

СтолбецОписание
Job_IdУникальный идентификатор задания
Catalog_NameИмя Catalog
DB_NameИмя базы данных
ColumnsСписок имён столбцов

Требования к правам доступа​

Пользователь, выполняющий эту инструкцию SQL, должен иметь как минимум следующие права:

Право доступаОбъектПримечания
SELECT_PRIVТаблицаДля выполнения ANALYZE требуется право SELECT_PRIV на таблицу, к которой выполняется запрос.

Примеры​

  1. Собрать статистику по выборке из 10% строк таблицы lineitem.
ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10;
  1. Собрать статистику по выборке из 100,000 строк таблицы lineitem.
ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000;
  1. Собрать полную статистику и горячие значения.
ANALYZE TABLE lineitem WITH SYNC WITH HOT VALUE;