ANALYZE
Описание
Этот оператор используется для сбора статистики по столбцам. Статистику можно собирать для отдельной таблицы (с возможностью указать конкретные столбцы) или для всей базы данных.
Синтаксис
ANALYZE {TABLE <table_name> [ (<column_name> [, ...]) ] | DATABASE <database_name>}
[ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} <sample_rate> ] ];
Обязательные параметры
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 определяет количество строк в выборке.
Возвращаемое значение
| Столбец | Описание |
|---|---|
| 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;