View a markdown version of this page

Manajemen rencana kueri - AWSPanduan Preskriptif

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

Manajemen rencana kueri

Perubahan pada statistik, batasan, pengaturan lingkungan, pengikatan parameter kueri, dan pemutakhiran ke mesin database PostgreSQL semuanya dapat menyebabkan kemunduran rencana kueri. Regresi rencana permintaan adalah ketika optimizer memilih rencana yang kurang optimal daripada sebelum perubahan yang diberikan ke lingkungan database.

Di Amazon Aurora PostgreSQL Compatible Edition, fitur manajemen rencana kueri (QPM) dirancang untuk memastikan kemampuan adaptasi dan stabilitas paket, terlepas dari perubahan lingkungan database yang dapat menyebabkan regresi rencana kueri. QPM memberikan beberapa kontrol atas optimizer. Dengan menggunakan QPM, Anda dapat mengelola rencana eksekusi kueri yang dihasilkan oleh pengoptimal untuk kueri SQL Anda. Rencana eksekusi kueri memaksa pengoptimal untuk memilih dari rencana yang disetujui untuk kueri kritis, untuk mengoptimalkan kinerjanya.

Perusahaan umumnya menyebarkan aplikasi dan database secara global atau mempertahankan beberapa lingkungan untuk setiap database aplikasi, seperti pengembangan, QA, pementasan, praproduksi, pengujian, dan produksi. Mempertahankan rencana eksekusi query untuk setiap database, di setiap lingkungan, dan di semuaWilayah AWS dapat menjadi kompleks dan memakan waktu. QPM dapat mengekspor dan mengimpor paket terkelola yang kompatibel dengan Amazon Aurora PostgreSQL dari satu database ke database lainnya. Ini membantu Anda mengelola rencana eksekusi kueri secara terpusat dan menerapkan database secara global. Anda dapat menggunakan fitur ini untuk menyelidiki serangkaian rencana dalam database praproduksi, memverifikasi bahwa mereka bekerja dengan baik, dan kemudian memuatnya ke lingkungan produksi.

QPM juga memberikan beberapa manfaat lainnya. Misalnya, Anda dapat menggunakan QPM untuk meningkatkan rencana eksekusi yang tidak dapat diubah dalam aplikasi atau ketika petunjuk tidak dapat ditambahkan ke pernyataan. QPM juga secara otomatis mendeteksi rencana baru dengan biaya minimum yang ditemukan oleh pengoptimal, sehingga Anda dapat terus mengoptimalkan biaya selain kinerja.

Kami sarankan Anda mengaktifkan QPM. Saat QPM diaktifkan, pengoptimal menggunakan paket biaya minimum yang telah Anda setujui. Ini membantu mencegah regresi dan mengurangi waktu yang diperlukan untuk mengelola dan memperbaiki rencana suboptimal.

Ada dua pendekatan yang berbeda untuk menggunakan fitur QPM: proaktif dan reaktif. Pendekatan proaktif dirancang untuk membantu mencegah terjadinya regresi kinerja, dan pendekatan reaktif dirancang untuk mendeteksi dan memperbaiki regresi kinerja setelah terjadi. Anda dapat memilih pendekatan Anda pada basis per-query. Untuk kueri kompleks yang mungkin rentan terhadap regresi atau kueri penting bisnis, Anda dapat menggunakan pendekatan proaktif dan menyetujui rencana optimal untuk kueri tersebut. Jika kueri lain mengalami regresi rencana kueri selama runtime, Anda dapat menggunakan pendekatan reaktif. Saat Anda mendeteksi regresi, ubah status rencana iturejected agar pengoptimal memilih paket yang berbeda dan disetujui. Untuk informasi selengkapnya, lihat Praktik terbaik untuk manajemen rencana kueri Aurora PostgreSQL (dokumentasi Aurora).

Bagaimana cara kerja manajemen rencana kueri?

Rencana ditugaskan salah satu status berikut:approved,unapproved,preferred, ataurejected. Optimizer menetapkan rencana yang dihasilkan pertama untuk setiap pernyataan yang dikelolaapproved dan kemudian menetapkan status rencana tambahan untukunapproved. Kemudian, Anda dapat menilaiunapproved rencana dan mengubah status mereka keapproved,preferred, ataurejected. Untuk informasi selengkapnya, lihat Memahami manajemen rencana kueri Aurora PostgreSQL (dokumentasi Aurora).

Paket yang dikelola dapat ditangkap secara manual atau otomatis. Pendekatan yang paling umum adalah secara otomatis menangkap rencana untuk semua pernyataan yang berjalan dua kali atau lebih. Namun, Anda juga dapat secara manual menangkap rencana untuk serangkaian pernyataan tertentu. Untuk informasi selengkapnya, lihat Menangkap rencana eksekusi PostgreSQL Aurora (dokumentasi Aurora).

Setelah Anda menyiapkan rencana dikelola, pengoptimal akan menggunakanapproved rencana berbiaya minimumpreferred yang berlaku dan diaktifkan untuk setiap pernyataan dikelola. Untuk informasi selengkapnya, lihat Bagaimana pengoptimal memilih rencana yang akan dijalankan (dokumentasi Aurora).

Untuk petunjuk tentang mengonfigurasi fitur QPM di Kompatibel dengan Amazon Aurora PostgreSQL, lihat Mengelola rencana eksekusi kueri untuk Aurora PostgreSQL (dokumentasi Aurora).

Keterbatasan:

Untuk menggunakan QPM, Anda harus memastikan bahwa Anda memenuhi persyaratan untuk pernyataan SQL yang didukung, pernyataan Anda tidak merujuk hubungan sistem, dan kelas instans DB Anda memiliki vCPUs yang memadai. Untuk informasi selengkapnya, lihat Pernyataan SQL yang didukung dan batasan manajemen rencana kueri (dokumentasi Aurora).

Kasus penggunaan untuk manajemen rencana kueri

  • Mencegah regresi rencana kueri - Menjaga versi database Anda tetap up to date memberikan banyak manfaat, seperti peningkatan kinerja dan keamanan, akses ke fitur baru, perbaikan untuk masalah yang diketahui, dan kepatuhan terhadap persyaratan peraturan. Namun, ada risiko bahwa pembaruan database dapat menyebabkan beberapa kueri mengalami regresi kinerja. Risiko ini lebih tinggi dengan peningkatan versi utama karena dapat berisi perubahan yang mungkin tidak kompatibel dengan kueri aplikasi yang ada. Menerapkan QPM dapat membantu mencegah regresi dan menstabilkan kinerja selama perubahan sistem. Jika Anda menyegarkan statistik, menambahkan indeks, mengubah parameter, atau meningkatkan ke versi baru yang kompatibel dengan Amazon Aurora PostgreSQL, QPM mendeteksi paket baru tetapi terus menggunakan paket yang disetujui, sehingga menjaga stabilitas paket.

  • Fitur pengujian — Anda dapat melihat riwayat rencana untuk semua pernyataan SQL terkelola dan menilai apakah fitur PostgreSQL baru atau perubahan rencana meningkatkan kinerja. Anda kemudian dapat memutuskan apakah akan mengimplementasikan fitur-fitur tersebut atau paket baru. Untuk informasi selengkapnya, lihat Memeriksa rencana kueri Aurora PostgreSQL dalam tampilan dba_plans (dokumentasi Aurora).

  • Memperbaiki rencana — Dalam beberapa kasus, Anda mungkin lebih memilih untuk memperbaiki rencana suboptimal daripada menolak, menonaktifkan, atau menghapusnya. Untuk informasi selengkapnya, lihat Memperbaiki rencana menggunakan pg_hint_plan (dokumentasi Aurora).