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 на таблицу, к которой выполняется запрос. |
Примеры
- Собрать статистику по выборке из 10% строк таблицы lineitem.
ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10;
- Собрать статистику по выборке из 100,000 строк таблицы lineitem.
ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000;
- Собрать полную статистику и горячие значения.
ANALYZE TABLE lineitem WITH SYNC WITH HOT VALUE;