ANALYZE TABLE
Область применения: Databricks SQL Databricks Runtime
Инструкция ANALYZE TABLE
собирает оценочную статистику по определенной таблице или всем таблицам в указанной схеме. Эти статистические данные используются оптимизатором запросов для создания оптимального плана запроса.
Прогнозная оптимизация автоматически запускает ANALYZE
управляемые таблицы каталога ON Unity. Databricks рекомендует включить прогнозную оптимизацию для всех управляемых таблиц каталога Unity, чтобы упростить обслуживание данных и сократить затраты на хранение. См . статью прогнозной оптимизации для управляемых таблиц каталога Unity.
Внимание
Прогнозная оптимизация с ANALYZE
общедоступной предварительной версией. Она включает интеллектуальную коллекцию статистики во время записи. Используйте эту форму для регистрации в общедоступной предварительной версии.
Синтаксис
ANALYZE TABLE table_name [ PARTITION clause ]
COMPUTE [ DELTA ] STATISTICS [ NOSCAN | FOR COLUMNS col1 [, ...] | FOR ALL COLUMNS ]
ANALYZE TABLES [ { FROM | IN } schema_name ] COMPUTE STATISTICS [ NOSCAN ]
Параметры
-
Определяет таблицу, которую нужно проанализировать. Имя не должно содержать темпоральную спецификацию или путь. Если не удается найти таблицу Azure Databricks, возникает ошибка TABLE_OR_VIEW_NOT_FOUND .
-
Дополнительно ограничивает команду подмножеством секций.
Это предложение не поддерживается для таблиц Delta Lake.
DELTA
Область применения: Databricks SQL Databricks Runtime 14.3 LTS и выше
Перекомпьютирует статистику, хранящуюся в журнале Delta для столбцов, настроенных для сбора статистики в таблице Delta.
При указании ключевого слова обычные статистические
DELTA
данные для оптимизатора запросов не собираются.Databricks рекомендует выполняться
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
после настройки новых столбцов для пропуска данных для обновления статистики для всех строк в таблице. Для оптимизации производительности выполните обновлениеANALYZE TABLE table_name COMPUTE STATISTICS
плана запроса после завершения обновления журнала Delta.[ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]
Если параметр анализа отсутствует,
ANALYZE TABLE
собирает количество строк в таблице и ее размер в байтах.NOSCAN
Собирает только размер таблицы в байтах (для этого не требуется сканирование всей таблицы).
FOR COLUMNS col [, …] | FOR ALL COLUMNS
Собирает статистику по столбцам для каждого указанного столбца или, кроме того, для каждого столбца, а также статистику по таблице.
Статистика столбцов не поддерживается в сочетании с предложением
PARTITION
.
{ FROM
|
IN } schema_nameУказывает имя анализируемой схемы. Если имя схемы не указано,
ANALYZE TABLES
собирает все таблицы в текущей схеме, которые текущему пользователю разрешено анализировать.
Примеры
> CREATE TABLE students (name STRING, student_id INT) PARTITIONED BY (student_id);
> INSERT INTO students PARTITION (student_id = 111111) VALUES ('Mark');
> INSERT INTO students PARTITION (student_id = 222222) VALUES ('John');
> ANALYZE TABLE students COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLE students COMPUTE STATISTICS;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
-- Note: ANALYZE TABLE .. PARTITION is not supported for Delta tables.
> ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS;
> DESC EXTENDED students PARTITION (student_id = 111111);
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Partition Statistics 432 bytes, 1 rows
... ... ...
OutputFormat org.apache.hadoop...
> ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name;
> DESC EXTENDED students name;
info_name info_value
-------------- ----------
col_name name
data_type string
comment NULL
min NULL
max NULL
num_nulls 0
distinct_count 2
avg_col_len 4
max_col_len 4
histogram NULL
> ANALYZE TABLES IN school_schema COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLES COMPUTE STATISTICS;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes, 2 rows
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
> ANALYZE TABLE some_delta_table COMPUTE DELTA STATISTICS;