ANALISIS TABEL
Berlaku untuk: Databricks SQL 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 menjalankan ANALYZE
tabel terkelola ON 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.
Penting
Pengoptimalan prediktif dengan ANALYZE
ada di Pratinjau Umum. Ini termasuk koleksi statistik cerdas selama penulisan. Gunakan formulir ini untuk mendaftar pratinjau publik.
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
-
Mengidentifikasi tabel yang akan dianalisis. Nama tidak boleh menyertakan spesifikasi atau jalur temporal. Jika tabel tidak dapat ditemukan, Azure Databricks menimbulkan kesalahan TABLE_OR_VIEW_NOT_FOUND .
-
Secara opsional membatasi perintah ke subset partisi.
Klausul ini tidak didukung untuk tabel Delta Lake.
DELTA
Berlaku untuk: Databricks SQL Databricks Runtime 14.3 LTS ke atas
Komputasi ulang statistik yang disimpan di log Delta untuk kolom yang dikonfigurasi untuk koleksi statistik dalam tabel Delta.
DELTA
Ketika kata kunci ditentukan, statistik normal untuk pengoptimal kueri tidak dikumpulkan.Databricks merekomendasikan untuk berjalan
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
setelah mengatur kolom baru untuk melewatkan data untuk memperbarui statistik untuk semua baris dalam tabel. Untuk performa yang dioptimalkan, jalankanANALYZE TABLE table_name COMPUTE STATISTICS
untuk memperbarui rencana kueri setelah pembaruan log Delta selesai.[ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]
Jika tidak ada opsi analisis yang ditentukan,
ANALYZE TABLE
akan mengumpulkan jumlah baris dan ukuran tabel dalam byte.NOSCAN
Hanya mengumpulkan ukuran tabel dalam byte (yang tidak memerlukan pemindaian seluruh tabel).
FOR COLUMNS col [, …] | FOR ALL COLUMNS
Mengumpulkan statistik kolom untuk setiap kolom yang ditentukan, atau untuk setiap kolom, serta statistik tabel.
Statistik kolom tidak didukung dalam kombinasi dengan klausul
PARTITION
.
{ FROM
|
IN } schema_nameMenentukan 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;