Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan Spark pengoptimal berbasis biaya
Spark versi 2.09 dan yang lebih baru dapat menggunakan pengoptimal berbasis biaya (CBO). CBO memilih rencana eksekusi termurah untuk kueri berdasarkan berbagai statistik tabel. CBO mencoba untuk mengoptimalkan eksekusi query sehubungan dengan pemanfaatan CPU dan I/O, sehingga kembali secepat mungkin. Namun, dalam banyak kasus, statistik data umumnya tidak ada, terutama ketika pengumpulan statistik bahkan lebih mahal daripada pemrosesan data. Bahkan jika statistik tersedia, mereka kemungkinan sudah ketinggalan zaman. Berikut ini adalah praktik terbaik untuk menggunakan CBO:
-
Kumpulkan statistik pada semua kolom yang digunakan dalam operasi seperti gabungan, filter, dan grup bys. Ini membantu pengoptimal membuat keputusan yang lebih baik. Gunakan
ANALYZE TABLE
untuk mengumpulkan statistik. -
Tingkatkan frekuensi pengumpulan statistik jika data berubah dengan cepat. Statistik yang sudah ketinggalan zaman dapat menghasilkan rencana yang tidak dioptimalkan.
-
Mulailah dengan parameter CBO default dan setel hanya jika diperlukan. Pengoptimalan agresif dapat meningkatkan runtime.
-
Verifikasi apakah CBO memilih rencana optimal dengan memaksa rencana yang dioptimalkan dan membandingkan kinerjanya. Aktifkan logging pengoptimal untuk membandingkan paket.
-
Untuk pengoptimalan yang lebih baik, gunakan CBO dalam kombinasi dengan petunjuk partisi, bucketing, dan kemiringan data. Partisi dapat membantu CBO untuk skala.
-
Untuk mendeteksi regresi rencana lebih awal, terus memantau kinerja kueri setelah mengaktifkan CBO.