Sdílet prostřednictvím


ANALYZE TABLE

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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

  • table_name

    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.

  • Klauzule PARTITION

    Volitelně omezí příkaz na podmnožinu oddílů.

    Tato klauzule není pro tabulky Delta Lake podporovaná.

  • DELTA

    Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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ťte ANALYZE 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_name

    Urč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;