ANALYZE TABLE
Gäller för: Databricks SQL Databricks Runtime
Instruktionen ANALYZE TABLE
samlar in uppskattad statistik om en specifik tabell eller alla tabeller i ett angivet schema. Den här statistiken används av frågeoptimeraren för att generera en optimal frågeplan.
Förutsägelseoptimering körs automatiskt på Unity Catalog-hanterade tabeller ANALYZE
. Databricks rekommenderar att du aktiverar förutsägande optimering för alla hanterade Unity Catalog-tabeller för att förenkla dataunderhållet och minska lagringskostnaderna. Se Förutsägelseoptimering för hanterade Unity Catalog-tabeller.
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 ]
Parametrar
-
Identifierar tabellen som ska analyseras. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation eller sökväg. Om det inte går att hitta tabellen skapar 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-tabeller.
DELTA
Gäller för: Databricks SQL Databricks Runtime 14.3 LTS och senare
Räknar om statistik som lagras i Delta-loggen för de kolumner som har konfigurerats för statistikinsamling i en Delta-tabell.
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
efter att ha angett nya kolumner för datahoppning för att uppdatera statistiken för alla rader i en tabell. För optimerad prestanda kör duANALYZE TABLE table_name COMPUTE STATISTICS
för att uppdatera frågeplanen när deltalogguppdateringen har slutförts.[ NOSCAN | FÖR COLUMNS col [, ...] | FÖR ALLA COLUMNS ]
Om inget analysalternativ har angetts samlar
ANALYZE TABLE
in tabellens antal rader och storlek i byte.NOSCAN
Samla endast in tabellens storlek i byte (vilket inte kräver genomsökning av hela tabellen ).
FÖR COLUMNS col [, ...] | FÖR ALLA COLUMNS
Samla in kolumnstatistik för varje angiven kolumn, eller alternativt för varje kolumn, samt tabellstatistik.
Kolumnstatistik stöds inte i kombination med
PARTITION
-satsen.
{ FRÅN
|
IN } schema_nameAnger namnet på schemat som ska analyseras. Utan ett schemanamn samlar
ANALYZE TABLES
in alla tabeller i det aktuella schemat 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;