ANALYZE TABLE
Platí pro: Databricks SQL Databricks Runtime
Příkaz ANALYZE TABLE
shromažďuje odhadované statistiky o konkrétní tabulce nebo všech tabulkách v zadaném schématu. Tyto statistiky používá optimalizátor dotazů k vygenerování optimálního plánu dotazu.
Prediktivní optimalizace automaticky spouští ANALYZE
spravované tabulky katalogu Unity. Databricks doporučuje povolit prediktivní optimalizaci pro všechny spravované tabulky Katalogu Unity, aby se zjednodušila údržba dat a snížily náklady na úložiště. Viz Prediktivní optimalizace spravovaných tabulek v katalogu Unity.
Důležité
Prediktivní optimalizace ve ANALYZE
verzi Public Preview. Zahrnuje inteligentní shromažďování statistik během zápisů. Pomocí tohoto formuláře se zaregistrujte do verze Public Preview.
Syntaxe
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 ]
Parametry
-
Identifikuje tabulku, která se má analyzovat. Název nesmí obsahovat dočasnou specifikaci nebo specifikaci možností nebo cestu. Pokud tabulku nenajdete, Azure Databricks vyvolá TABLE_OR_VIEW_NOT_FOUND chybu.
-
Volitelně omezí příkaz na podmnožinu oddílů.
Tato klauzule není pro tabulky Delta Lake podporovaná.
DELTA
Platí pro: Databricks SQL Databricks Runtime 14.3 LTS a vyšší
Recomputes statistics stored in the Delta log for the columns configured for statistics collection in a Delta table.
Při zadání klíčového
DELTA
slova se neshromažďují běžné statistiky optimalizátoru dotazů.Databricks doporučuje spuštění
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
po nastavení nových sloupců pro přeskočení dat, aby se aktualizovaly statistiky pro všechny řádky v tabulce. Pokud chcete optimalizovat výkon, spusťteANALYZE TABLE table_name COMPUTE STATISTICS
aktualizaci plánu dotazu po dokončení aktualizace protokolu Delta.[ NOSCAN | SLOUPEC SLOUPCE [, ...] | PRO VŠECHNY SLOUPCE ]
Pokud není zadána žádná možnost analýzy,
ANALYZE TABLE
shromáždí počet řádků a velikostí tabulky v bajtech.NOSCAN
Shromážděte pouze velikost tabulky v bajtech (což nevyžaduje skenování celé tabulky).
SLOUPEC SLOUPCE [, ...] | PRO VŠECHNY SLOUPCE
Shromážděte statistiky sloupců pro každý zadaný sloupec nebo případně pro každý sloupec a také statistiky tabulky.
Statistiky sloupců nejsou podporovány v kombinaci s klauzulí
PARTITION
.
{ FROM
|
IN } schema_nameUrčuje název schématu, který se má analyzovat. Bez názvu
ANALYZE TABLES
schématu shromažďuje všechny tabulky v aktuálním schématu, které má aktuální uživatel oprávnění k analýze.
Příklady
> 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;