ANALYZE TABLE
Se aplica a: Databricks SQL Databricks Runtime
La instrucción ANALYZE TABLE
recopila estadísticas estimadas sobre una tabla específica o sobre todas las tablas de un esquema especificado.
El optimizador de consultas usa estas estadísticas para generar un plan de consulta óptimo.
Dado que pueden quedar obsoletas al cambiar los datos, estas estadísticas no se usan para responder directamente a las consultas.
Las estadísticas obsoletas siguen siendo útiles para el optimizador de consultas al crear un plan de consulta.
Sintaxis
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 la tabla que se va a analizar. El nombre no debe incluir una especificación temporal ni una ruta de acceso. Si no se encuentra la tabla, Azure Databricks genera un error TABLE_OR_VIEW_NOT_FOUND.
-
Puede limitar el comando a un subconjunto de particiones.
Esta cláusula no es compatible con tablas de Delta Lake.
DELTA
Se aplica a: Databricks SQL Databricks Runtime 14.3 LTS y versiones posteriores
Vuelve a calcular las estadísticas almacenadas en el registro Delta para las columnas configuradas para la recopilación de estadísticas en una tabla Delta.
Cuando se especifica la palabra clave
DELTA
, no se recopilan estadísticas normales del optimizador de consultas.Databricks recomienda ejecutar
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
después de configurar nuevas columnas a fin de omitir datos para actualizar las estadísticas de todas las filas de una tabla. Para optimizar el rendimiento, ejecuteANALYZE TABLE table_name COMPUTE STATISTICS
a fin de actualizar el plan de consulta una vez completada la actualización del registro Delta.[ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]
Si no se especifica ninguna opción de análisis,
ANALYZE TABLE
recopila el número de filas y el tamaño en bytes de la tabla.NOSCAN
Recopila solo el tamaño en bytes de la tabla (para lo que no se requiere examinar toda la tabla).
FOR COLUMNS col [, …] | FOR ALL COLUMNS
Recopila estadísticas de columna para cada columna especificada o, como alternativa, para cada columna, así como estadísticas de tabla.
Las estadísticas de columna no se admiten en combinación con la cláusula
PARTITION
.
{ FROM
|
IN } schema_nameEspecifica el nombre del esquema que se va a analizar. Sin un nombre de esquema,
ANALYZE TABLES
recopila todas las tablas del esquema actual para el que el usuario actual tiene permiso de analizar.
Ejemplos
> 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;