Udostępnij za pośrednictwem


ANALYZE TABLE

Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Instrukcja ANALYZE TABLE zbiera szacowane statystyki dotyczące określonej tabeli lub wszystkich tabel w określonym schemacie. Te statystyki są używane przez optymalizator zapytań do generowania optymalnego planu zapytania.

Optymalizacja predykcyjna automatycznie uruchamia ANALYZE tabele zarządzane przez wykaz aparatu Unity. Usługa Databricks zaleca włączenie optymalizacji predykcyjnej dla wszystkich tabel zarządzanych przez wykaz aparatu Unity, aby uprościć konserwację danych i zmniejszyć koszty magazynowania. Zobacz Optymalizacja predykcyjna dla tabel zarządzanych w wykazie aparatu Unity.

Ważne

Optymalizacja predykcyjna za pomocą ANALYZE programu jest dostępna w publicznej wersji zapoznawczej. Obejmuje ona inteligentne zbieranie statystyk podczas zapisu. Użyj tego formularza , aby zarejestrować się w publicznej wersji zapoznawczej.

Składnia

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

    Identyfikuje tabelę do przeanalizowania. Nazwa nie może zawierać specyfikacji czasowej ani specyfikacji opcji ani ścieżki . Jeśli nie można odnaleźć tabeli usługi Azure Databricks, wystąpi błąd TABLE_OR_VIEW_NOT_FOUND .

  • KLAUZULA PARTITION

    Opcjonalnie ogranicza polecenie do podzbioru partycji.

    Ta klauzula nie jest obsługiwana w przypadku tabel usługi Delta Lake.

  • DELTA

    Dotyczy: zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 14.3 LTS i nowsze

    Ponownie skompiluj statystyki przechowywane w dzienniku delty dla kolumn skonfigurowanych dla zbierania statystyk w tabeli delty.

    Po określeniu DELTA słowa kluczowego nie są zbierane normalne statystyki optymalizatora zapytań.

    Usługa Databricks zaleca uruchamianie ANALYZE TABLE table_name COMPUTE DELTA STATISTICS po ustawieniu nowych kolumn dla danych pomijających aktualizowanie statystyk dla wszystkich wierszy w tabeli. Aby zoptymalizować wydajność, uruchom polecenie ANALYZE TABLE table_name COMPUTE STATISTICS , aby zaktualizować plan zapytania po zakończeniu aktualizacji dziennika delty.

  • [ NOSCAN | KOLUMNA KOLUMN [, ...] | DLA WSZYSTKICH KOLUMN ]

    Jeśli nie określono opcji analizy, ANALYZE TABLE zbiera liczbę wierszy i rozmiar tabeli w bajtach.

    • NOSCAN

      Zbierz tylko rozmiar tabeli w bajtach ( który nie wymaga skanowania całej tabeli ).

    • KOLUMNA KOLUMN [, ...] | DLA WSZYSTKICH KOLUMN

      Zbierz statystyki kolumn dla każdej określonej kolumny lub alternatywnie dla każdej kolumny, a także statystyki tabeli.

      Statystyki kolumn nie są obsługiwane w połączeniu z klauzulą PARTITION .

  • { FROM | IN } schema_name

    Określa nazwę schematu do przeanalizowania. Bez nazwy schematu zbiera wszystkie tabele w bieżącym schemacie, ANALYZE TABLES do którego bieżący użytkownik ma uprawnienia do analizowania.

Przykłady

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