ANALYZE TABLE
Gäller för: Databricks SQL Databricks Runtime
ANALYZE TABLE
-instruktionen samlar in uppskattad statistik om en specifik table eller alla tables inom en angiven schema. Den här statistiken används av frågeoptimeraren för att generate en optimal frågeplan.
Prediktiv optimering körs automatiskt ANALYZE
på Unity Catalog hanterad tables. Databricks rekommenderar att du aktiverar förutsägande optimering för alla Unity-Catalog hanterade tables för att förenkla dataunderhållet och minska lagringskostnaderna. Se Förutsägelseoptimering för Unity Catalog hanterad tables.
Viktigt!
Förutsägelseoptimering med ANALYZE
finns i offentlig förhandsversion. Den innehåller intelligent statistikinsamling under skrivningar. Använd det här formuläret för att registrera dig för den offentliga förhandsversionen.
Syntax
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 ]
Parameters
-
Identifierar table som ska analyseras. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation eller sökväg. Om table inte kan hittas genererar Azure Databricks ett TABLE_OR_VIEW_NOT_FOUND fel.
-
Du kan också begränsa kommandot till en delmängd partitioner.
Den här satsen stöds inte för Delta Lake tables.
DELTA
Gäller för: Databricks SQL Databricks Runtime 14.3 LTS och senare
Beräknar statistiken på nytt som lagras i Delta-loggen för columns som konfigurerats för statistikinsamling i en Delta-table.
När nyckelordet
DELTA
har angetts samlas inte normal statistik för frågeoptimeraren in.Databricks rekommenderar att du kör
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
när du har angett nya columns för data som hoppar över till update statistik för alla rader i en table. För optimerad prestanda kör duANALYZE TABLE table_name COMPUTE STATISTICS
update frågeplanen efter att Delta-loggen update har slutförts.[ NOSCAN | FÖR COLUMNS col [, ...] | FÖR ALLA COLUMNS ]
Om inget analysalternativ anges samlar
ANALYZE TABLE
in table:s antalet rader och storlek i byte.NOSCAN
Samla endast storleken på tablei byte (vilket inte kräver genomsökning av hela table).
FÖR COLUMNS col [, ...] | FÖR ALLA COLUMNS
Samla in statistik för column för varje angiven column eller alternativt för varje column, samt statistik för table.
Column-statistik stöds inte i kombination med
PARTITION
-klausulen.
{ FRÅN
|
IN } schema_nameAnger namnet på schema som ska analyseras. Utan ett schema namn samlar
ANALYZE TABLES
in alla tables i den aktuella schema som den aktuella användaren har behörighet att analysera.
Exempel
> 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;