Meningkatkan kinerja kueri menggunakan gabungan adaptif - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Meningkatkan kinerja kueri menggunakan gabungan adaptif

Gambaran Umum

Adaptive join adalah fitur pratinjau di Aurora PostgreSQL 17.4 yang membantu meningkatkan kinerja kueri. Fitur ini dinonaktifkan secara default, tetapi Anda dapat mengaktifkannya menggunakan parameter Global User Configuration (GUC). Karena ini adalah fitur pratinjau, nilai parameter default mungkin berubah. Saat diaktifkan, gabungan adaptif membantu mengoptimalkan kinerja kueri dengan beralih secara dinamis dari gabungan loop bersarang ke gabungan hash saat runtime. Peralihan ini terjadi ketika pengoptimal PostgreSQL salah memilih sambungan loop bersarang karena perkiraan kardinalitas yang tidak akurat.

Mengkonfigurasi gabungan adaptif

Anda dapat mengontrol gabungan adaptif menggunakan tiga parameter GUC ini:

Parameter konfigurasi gabungan adaptif
Parameter GUC Deskripsi Opsi default dan konfigurasi
apg_adaptive_join_crossover_multiplier Pengganda ini bekerja dengan titik crossover baris untuk menentukan kapan harus beralih dari loop bersarang ke gabungan hash. Titik crossover baris adalah di mana pengoptimal SQL memperkirakan bahwa loop bersarang dan operasi gabungan hash memiliki biaya yang sama. Nilai multiplier yang lebih tinggi mengurangi kemungkinan pengalihan gabungan adaptif ke gabungan hash.

Mengontrol apakah Adaptive Join diaktifkan

  • Nilai default: -1 (dinonaktifkan)

  • Rentang yang valid: -1 hingga DBL_MAX

  • Untuk mengaktifkan: Setel ke >= 1

apg_adaptive_join_cost_threshold Parameter ini menetapkan ambang biaya kueri minimum. Gabungan adaptif secara otomatis menonaktifkan dirinya sendiri untuk kueri di bawah ambang batas ini. Ini mencegah overhead kinerja dalam kueri sederhana di mana biaya perencanaan gabungan adaptif dapat melebihi manfaat beralih dari loop bersarang ke gabungan hash.

Menetapkan ambang biaya minimum untuk kueri

  • Nilai default: 100

  • Rentang yang valid: 0 hingga DBL_MAX

apg_enable_parameterized_adaptive_join Parameter ini memperluas fungsionalitas gabungan adaptif ke gabungan loop bersarang berparameter saat diaktifkan. Secara default, gabungan adaptif hanya berfungsi dengan gabungan loop bersarang tanpa parameter, karena ini lebih mungkin mendapat manfaat dari beralih ke gabungan hash. Gabungan loop bersarang berparameter biasanya berkinerja lebih baik, membuat peralihan ke bergabung dengan hash menjadi kurang penting.

Mengontrol perilaku gabungan adaptif untuk gabungan loop bersarang

  • Nilai default: salah

  • Nilai yang benar: benar/salah

    • Ketika false: Hanya berfungsi dengan gabungan loop bersarang tanpa parameter

    • Ketika true: Bekerja dengan gabungan loop bersarang berparameter dan tidak berparameter

catatan

apg_adaptive_join_crossover_multiplierHarus diaktifkan terlebih dahulu