ANALYZE TABLE
Gilt für: Databricks SQL Databricks Runtime
Die ANALYZE TABLE
-Anweisung sammelt geschätzte Statistiken zu einer bestimmten Tabelle oder allen Tabellen in einem angegebenen Schema. Diese Statistiken werden vom Abfrageoptimierer für das Generieren eines optimalen Abfrageplans verwendet.
Die Predictive Optimization führt automatisch verwaltete Tabellen im UNITY-Katalog aus ANALYZE
. Databricks empfiehlt die Aktivierung der prädiktiven Optimierung für alle verwalteten Tabellen in Unity Catalog, um die Datenwartung zu vereinfachen und die Speicherkosten zu senken. Siehe Prädiktive Optimierung für verwaltete Unity Catalog-Tabellen.
Wichtig
Predictive optimization with ANALYZE
is in Public Preview. Sie enthält eine intelligente Statistiksammlung während der Schreibvorgänge. Verwenden Sie dieses Formular , um sich für die öffentliche Vorschau anzumelden.
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 ]
Parameter
-
Gibt die zu analysierende Tabelle an. Der Name darf keine zeitliche Spezifikation oder Optionsspezifikation oder einen Pfad enthalten. Wenn die Tabelle nicht gefunden werden kann, löst Azure Databricks den Fehler TABLE_OR_VIEW_NOT_FOUND aus.
-
Schränkt den Befehl ggf. auf eine Teilmenge der Partitionen ein.
Diese Klausel wird für Delta Lake-Tabellen nicht unterstützt.
DELTA
Gilt für: Databricks SQL Databricks Runtime 14.3 LTS und höher
Berechnet im Delta-Protokoll gespeicherte Statistiken für die Spalten neu, die für die Statistiksammlung in einer Delta-Tabelle konfiguriert wurden.
Wenn das Schlüsselwort
DELTA
angegeben wird, werden keine normalen Statistiken für den Abfrageoptimierer erfasst.Databricks empfiehlt die Ausführung von
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
, nachdem neue Spalten zum Überspringen von Daten festgelegt wurden, um Statistiken für alle Zeilen in einer Tabelle zu aktualisieren. Führen Sie für eine optimierte LeistungANALYZE TABLE table_name COMPUTE STATISTICS
aus, um den Abfrageplan nach Abschluss der Delta-Protokollaktualisierung zu aktualisieren.[ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]
Wenn keine Analyseoption angegeben ist, erfasst
ANALYZE TABLE
die Anzahl der Zeilen und Größe der Tabelle in Bytes.NOSCAN
Erfasst nur die Größe der Tabelle in Bytes (sodass keine Überprüfung der gesamten Tabelle erforderlich ist).
FOR COLUMNS col [, …] | FOR ALL COLUMNS
Erfasst Spaltenstatistiken für alle angegebenen Spalten oder alternativ für alle Spalten sowie Tabellenstatistiken.
Spaltenstatistiken werden in Kombination mit der
PARTITION
-Klausel nicht unterstützt.
{ FROM
|
IN } schema_nameGibt den Namen des zu analysierenden Schemas an. Ohne Schemanamen erfasst
ANALYZE TABLES
alle Tabellen im aktuellen Schema, für das der aktuelle Benutzer über die Berechtigung zum Analysieren verfügt.
Beispiele
> 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;