Dela via


ANALYZE TABLE

Gäller för:markerad ja Databricks SQL markerad ja 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

  • table_name

    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.

  • PARTITION-sats

    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:markerad ja Databricks SQL markerad ja 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 du ANALYZE 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_name

    Anger 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;