Analisis kinerja kueri

Penting

Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.

Halaman ini menjelaskan wawasan performa yang Azure Databricks kembalikan dalam riwayat kueri dan cara bertindak pada mereka.

Saat kueri berjalan, Azure Databricks mungkin mengembalikan wawasan yang mengidentifikasi peluang untuk meningkatkan performa.

Menemukan wawasan dan rekomendasi untuk kueri Anda

Wawasan muncul di riwayat kueri Anda dan di profil kueri. Panel detail kueri memperlihatkan ringkasan wawasan, diberi peringkat berdasarkan perkiraan efeknya pada total durasi tugas. Tab Wawasan performa di profil kueri memperlihatkan detail lengkap untuk setiap wawasan.

Optimalkan dengan Kode Genie

Saat kueri memiliki wawasan yang dapat ditindakkan, pilih Optimalkan untuk membuka Kode Genie. Untuk wawasan yang memerlukan perubahan kueri, Kode Genie menulis ulang kueri dan menyajikan perubahan untuk persetujuan Anda. Untuk wawasan yang melibatkan perubahan tabel atau komputasi, Kode Genie meringkas tindakan yang direkomendasikan sebagai teks bahasa biasa.

Untuk mempelajari selengkapnya tentang bekerja dengan Genie Code, lihat Kode Genie.

Wawasan pengoptimalan kueri

COVERAGE_FILTER_KEYS_CLUSTERING

Tabel diklusterkan oleh satu atau beberapa kunci yang tidak digunakan dalam filter selama pemindaian tabel.

Rekomendasi: Tambahkan filter pada kunci pengklusteran untuk mengurangi byte yang dibaca.

COVERAGE_FILTER_KEYS_PARTITIONING

Tabel dipartisi oleh satu atau beberapa kunci yang tidak digunakan dalam filter selama pemindaian tabel.

Rekomendasi: Tambahkan filter pada kunci partisi untuk mengurangi byte yang dibaca.

COVERAGE_PHOTON

Photon tidak dapat mempercepat operasi ini, sehingga kueri menggunakan mesin runtime standar.

Rekomendasi: Tinjau Batasan Foton dan sesuaikan kueri untuk menggunakan jalur eksekusi yang didukung.

PENGGABUNGAN_MEMECAH

Gabungan menghasilkan lebih banyak baris secara signifikan daripada yang dibacanya.

Rekomendasi: Tentukan subset hasil mana yang Anda butuhkan, lalu perbarui kondisi gabungan atau kurangi jumlah baris input dari kedua relasi.

FLOW_FULL_RECOMPUTE

Alur berjalan sebagai komputasi ulang penuh.

Rekomendasi: Tulis ulang kueri untuk dukungan inkremental untuk mengurangi byte yang dibaca.

REDUNDANT_AGGREGATION

Operasi agregat tidak mengubah hasil kueri.

Rekomendasi: Hapus agregat atau terapkan batasan kunci utama dan asing.

REDUNDANT_JOIN

Gabungan luar tidak mengubah jumlah baris di sisi luar, dan tidak ada kolom dari tabel yang digabungkan yang digunakan.

Rekomendasi: Hapus join atau terapkan primary key atau constraint unik.

SELECTIVE_JOIN

Gabungan menghasilkan baris yang jauh lebih sedikit daripada yang dibacanya.

Rekomendasi: Tentukan subset hasil mana yang Anda butuhkan, lalu tambahkan filter sebelum gabungan untuk mengurangi baris input.

WIDE_PROJECTION

Kueri memproyeksikan semua kolom dari tabel.

Rekomendasi: Project hanya kolom yang perlu Anda kurangi byte yang dibaca.

Wawasan tata letak data

AUTO_LIQUID_CLUSTERING

Tabel dioptimalkan secara manual dan dapat memperoleh manfaat dari pengklusteran cairan otomatis.

Recommendations:

  • Konversi tabel dari eksternal ke dikelola untuk performa yang lebih baik dan pemeliharaan otomatis.
  • Aktifkan Pengoptimalan Prediktif pada tabel untuk operasi pemeliharaan otomatis.
  • Aktifkan pengklusteran otomatis pada tabel untuk mengurangi byte yang dibaca.

TULIS_BERSAMAAN

Penulisan bersamaan ke tabel menyebabkan konflik yang diselesaikan atau gagal secara otomatis.

Rekomendasi: Tinjau riwayat Delta untuk mengidentifikasi penulisan bersamaan dan menyesuaikan penjadwalan untuk menghindari konflik.

COVERAGE_STATS_DELTA

Statistik lompati data Delta hilang atau tidak lengkap untuk filter file pemindaian tabel, sehingga kueri menggunakan pemfilteran dalam file.

Status statistik untuk setiap filter dapat berupa salah satu hal berikut:

  • Penuh: Statistik tersedia untuk semua filter.
  • Parsial: Statistik tersedia untuk subset filter.
  • Tidak tersedia: Statistik tidak tersedia untuk filter apa pun.
  • Tidak terpakai: Statistik tidak dapat digunakan karena filter mengonversi jenis data.

Rekomendasi:Kumpulkan statistik Delta untuk mengurangi byte yang dibaca.

COVERAGE_STATS_OPTIMIZER

Statistik pengoptimal berbasis biaya hilang atau tidak lengkap, sehingga rencana kueri menggunakan heuristik standar.

Rekomendasi:Kumpulkan statistik untuk memungkinkan pengoptimal menghasilkan rencana yang lebih baik.

DATA_SKEW

Data didistribusikan secara tidak merata di seluruh sumber daya komputasi.

Rekomendasi: Tinjau distribusi data, lalu gunakan salting kunci atau pra-agregasi untuk menyeimbangkan beban kerja.

Wawasan komputasi dan sumber daya

DATA_SPILL

Data ditumpahkan ke disk selama eksekusi kueri karena data tidak pas dalam memori.

Rekomendasi: Tingkatkan ukuran gudang untuk menambahkan memori. Kurangi jumlah baris, kolom, atau ukuran kolom besar (string, array, peta, struct) untuk mengurangi penggunaan memori.

EXCESSIVE_QUEUE_TIME

Kueri menunggu di antrean gudang .

Rekomendasi: Tingkatkan jumlah maksimum kluster pada gudang untuk mengurangi waktu antrean.

IO_THROTTLING

Permintaan penyimpanan cloud dibatasi oleh penyedia cloud.

Rekomendasi: Hubungi administrator Anda untuk meminta peningkatan batas permintaan penyimpanan dari penyedia cloud Anda.

Sumber daya tambahan

Untuk gambaran umum yang lebih luas tentang praktik terbaik performa, lihat Panduan Komprehensif untuk Mengoptimalkan Beban Kerja Databricks, Spark, dan Delta Lake.