ANALYZE TABLE
Gäller för: Databricks SQL Databricks Runtime
Instruktionen ANALYZE TABLE
samlar in 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. Eftersom de kan bli inaktuella när data ändras används inte den här statistiken för att svara direkt på frågor. Inaktuell statistik är fortfarande användbart för frågeoptimeraren när du skapar en frågeplan.
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 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 Runtime 14.3 LTS och senare
Beräknar om statistik som lagras i Delta-loggen för de kolumner som 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 du har angett nya kolumner för data som hoppar över för att uppdatera statistik 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 KOLUMNER col [, ...] | FÖR ALLA KOLUMNER ]
Om inget analysalternativ har angetts
ANALYZE TABLE
samlar du 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 KOLUMNER col [, ...] | FÖR ALLA KOLUMNER
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
ANALYZE TABLES
samlar du 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;