Dela via


ANALYZE TABLE

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

ANALYZE TABLE-instruktionen samlar in uppskattad statistik om en specifik table eller alla tables inom en angiven schema. Den här statistiken används av frågeoptimeraren för att generate en optimal frågeplan.

Prediktiv optimering körs automatiskt ANALYZE på Unity Catalog hanterad tables. Databricks rekommenderar att du aktiverar förutsägande optimering för alla Unity-Catalog hanterade tables för att förenkla dataunderhållet och minska lagringskostnaderna. Se Förutsägelseoptimering för Unity Catalog hanterad tables.

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 ]

Parameters

  • table_name

    Identifierar table som ska analyseras. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation eller sökväg. Om table inte kan hittas genererar 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 tables.

  • DELTA

    Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime 14.3 LTS och senare

    Beräknar statistiken på nytt som lagras i Delta-loggen för columns som konfigurerats för statistikinsamling i en Delta-table.

    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 när du har angett nya columns för data som hoppar över till update statistik för alla rader i en table. För optimerad prestanda kör du ANALYZE TABLE table_name COMPUTE STATISTICSupdate frågeplanen efter att Delta-loggen update har slutförts.

  • [ NOSCAN | FÖR COLUMNS col [, ...] | FÖR ALLA COLUMNS ]

    Om inget analysalternativ anges samlar ANALYZE TABLE in table:s antalet rader och storlek i byte.

    • NOSCAN

      Samla endast storleken på tablei byte (vilket inte kräver genomsökning av hela table).

    • FÖR COLUMNS col [, ...] | FÖR ALLA COLUMNS

      Samla in statistik för column för varje angiven column eller alternativt för varje column, samt statistik för table.

      Column-statistik stöds inte i kombination med PARTITION-klausulen.

  • { FRÅN | IN } schema_name

    Anger namnet på schema som ska analyseras. Utan ett schema namn samlar ANALYZE TABLES in alla tables i den aktuella schema 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;