Bagikan melalui


ANALYZE TABLE

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Pernyataan ini ANALYZE TABLE mengumpulkan perkiraan statistik tentang tabel tertentu atau semua tabel dalam skema tertentu. Statistik ini digunakan oleh pengoptimal kueri untuk menghasilkan rencana kueri yang optimal.

Pengoptimalan prediktif secara otomatis dijalankan pada tabel terkelola di Unity Catalog. Databricks merekomendasikan untuk mengaktifkan pengoptimalan prediktif untuk semua tabel terkelola Unity Catalog untuk menyederhanakan pemeliharaan data dan mengurangi biaya penyimpanan. Lihat Pengoptimalan prediktif untuk tabel terkelola Unity Catalog.

Sintaks

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 ]

Parameter

  • table_name

    Mengidentifikasi tabel yang akan dianalisis. Nama tidak boleh menyertakan spesifikasi temporal, spesifikasi opsi, atau jalur. Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .

  • PARTITION klausa

    Secara opsional membatasi perintah ke subset partisi.

    Klausul ini tidak didukung untuk tabel Delta Lake.

  • DELTA

    Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime 14.3 LTS ke atas

    Menghitung ulang statistik yang disimpan di log Delta untuk kolom yang dikonfigurasi untuk pengumpulan statistik dalam tabel Delta.

    Ketika kata kunci DELTA ditentukan, statistik normal untuk pengoptimal kueri tidak dikumpulkan.

    Databricks merekomendasikan menjalankan ANALYZE TABLE table_name COMPUTE DELTA STATISTICS setelah menetapkan kolom baru untuk pengabaian data untuk memperbarui statistik untuk semua baris dalam tabel. Untuk performa yang dioptimalkan, jalankan ANALYZE TABLE table_name COMPUTE STATISTICS untuk memperbarui rencana kueri setelah pembaruan log Delta selesai.

  • [ NOSCAN | UNTUK COLUMNS col [, ...] | UNTUK SEMUA COLUMNS ]

    Jika tidak ada opsi analisis yang ditentukan, ANALYZE TABLE kumpulkan jumlah baris dan ukuran tabel dalam byte.

    • NOSCAN

      Kumpulkan hanya ukuran tabel dalam byte ( yang tidak memerlukan pemindaian seluruh tabel ).

    • UNTUK COLUMNS col [, ...] | UNTUK SEMUA COLUMNS

      Mengumpulkan statistik untuk setiap kolom yang ditentukan atau semua kolom, serta statistik tabel.

      Statistik kolom tidak didukung dalam kombinasi dengan klausul PARTITION.

  • { FROM | IN } schema_name

    Menentukan nama skema yang akan dianalisis. Tanpa nama skema, ANALYZE TABLES mengumpulkan semua tabel dalam skema saat ini yang dapat dianalisis oleh pengguna saat ini yang memiliki izin.

Contoh

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