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

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 на таблицу, к которой выполняется запрос.

Примеры​

  1. Собрать статистику по выборке из 10% данных таблицы lineitem.
ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10;
  1. Собрать статистику по выборке из 100,000 строк таблицы lineitem.
ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000;