ANALYZE TABLE
Aplica-se a: SQL do Databricks Databricks Runtime
A instrução ANALYZE TABLE
coleta estatísticas estimadas sobre uma tabela específica ou todas as tabelas em um esquema especificado. Essas estatísticas são usadas pelo otimizador de consulta para gerar um plano de consulta ideal.
A otimização preditiva é executada ANALYZE
automaticamente em tabelas gerenciadas do Catálogo do Unity. O Databricks recomenda habilitar a otimização preditiva para todas as tabelas gerenciadas do Catálogo do Unity para simplificar a manutenção de dados e reduzir os custos de armazenamento. Consulte Otimização preditiva para tabelas gerenciadas do Catálogo do Unity.
Importante
A otimização preditiva com ANALYZE
está em Visualização Pública. Inclui coleta inteligente de estatísticas durante as gravações. Use este formulário para se inscrever na Visualização Pública.
Sintaxe
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 ]
Parâmetros
-
Identifica a tabela a ser analisada. O nome não deve incluir um caminho ou especificação temporal. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.
-
Como opção, limita o comando a um subconjunto de partições.
Não há suporte para essa cláusula nas tabelas do Delta Lake.
DELTA
Aplica-se a: SQL do Databricks Databricks Runtime 14.3 LTS e superior
Recomputa estatísticas armazenadas no log Delta para as colunas configuradas para coleta de estatísticas em uma tabela Delta.
Quando a palavra-chave
DELTA
é especificada, as estatísticas normais do otimizador de consulta não são coletadas.O Databricks recomenda executar
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
depois de definir novas colunas para ignorar dados para atualizar estatísticas para todas as linhas em uma tabela. Para obter um desempenho otimizado, executeANALYZE TABLE table_name COMPUTE STATISTICS
para atualizar o plano de consulta após a conclusão da atualização de log delta.[ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]
Se nenhuma opção de análise estiver especificada,
ANALYZE TABLE
coleta o número de linhas e o tamanho em bytes da tabela.NOSCAN
Coleta apenas o tamanho da tabela em bytes (o que não exige a verificação da tabela inteira).
FOR COLUMNS col [, …] | FOR ALL COLUMNS
Coleta estatísticas de coluna para cada coluna especificada ou, como alternativa, para todas as colunas, além de estatísticas de tabela.
Não há suporte para estatísticas de coluna em combinação com a cláusula
PARTITION
.
{ FROM
|
IN } schema_nameEspecifica o nome do esquema a ser analisado. Sem um nome de esquema,
ANALYZE TABLES
coleta todas as tabelas no esquema atual que o usuário atual tem permissão para analisar.
Exemplos
> 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;