Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menangkap rencana eksekusi Aurora Postgre SQL
Manajemen rencana SQL kueri Aurora Postgre menawarkan dua mode berbeda untuk menangkap rencana eksekusi kueri, otomatis atau manual. Anda memilih mode dengan mengatur nilai apg_plan_mgmt.capture_plans_baselines
ke automatic
atau ke manual
. Anda dapat menangkap rencana eksekusi untuk SQL pernyataan tertentu dengan menggunakan pengambilan rencana manual. Alternatifnya, Anda dapat mengambil semua rencana (atau rencana yang paling lambat) yang dijalankan dua kali atau lebih saat aplikasi Anda berjalan menggunakan pengambilan rencana otomatis.
Saat mengambil rencana, pengoptimisasi selalu mengatur status rencana yang pertama kali diambil untuk suatu pernyataan terkelola menjadi approved
. Pengoptimisasi selalu mengatur status setiap rencana tambahan yang diambil untuk suatu pernyataan terkelola menjadi unapproved
. Namun, kadang-kadang lebih dari satu rencana dapat disimpan dengan status approved
. Hal ini dapat terjadi ketika beberapa rencana dibuat untuk sebuah pernyataan secara paralel dan sebelum rencana pertama untuk pernyataan tersebut ditetapkan.
Untuk mengontrol jumlah maksimum rencana yang dapat diambil dan disimpan di tampilan dba_plans
, atur parameter apg_plan_mgmt.max_plans
dalam grup parameter tingkat instans DB Anda. Perubahan pada parameter apg_plan_mgmt.max_plans
mengharuskan instans DB di-boot ulang agar nilai baru dapat diterapkan. Untuk informasi selengkapnya, lihat parameter apg_plan_mgmt.max_plans.
Menangkap rencana secara manual untuk pernyataan tertentu SQL
Jika Anda memiliki serangkaian SQL pernyataan yang diketahui untuk dikelola, masukkan pernyataan ke dalam file SQL skrip dan kemudian ambil rencana secara manual. Berikut ini menunjukkan contoh psql tentang cara menangkap rencana query secara manual untuk satu set pernyataan. SQL
psql>
SET apg_plan_mgmt.capture_plan_baselines = manual;psql>
\i my-statements.sqlpsql>
SET apg_plan_mgmt.capture_plan_baselines = off;
Setelah menangkap rencana untuk setiap SQL pernyataan, pengoptimal menambahkan baris baru ke tampilan. apg_plan_mgmt.dba_plans
Kami menyarankan Anda menggunakan salah satu EXPLAIN atau EXPLAIN EXECUTE pernyataan dalam file SQL skrip. Pastikan Anda memasukkan cukup variasi dalam nilai parameter untuk mengambil semua rencana yang diinginkan.
Jika Anda mengetahui rencana yang lebih baik daripada rencana berbiaya minimum dari pengoptimisasi, Anda mungkin dapat memaksa pengoptimisasi untuk menggunakan rencana yang lebih baik. Untuk melakukannya, tentukan satu atau beberapa petunjuk pengoptimal. Untuk informasi selengkapnya, lihat Memperbaiki rencana menggunakan pg_hint_plan. Untuk membandingkan performa rencana unapproved
dan approved
serta menyetujui, menolak, atau menghapusnya, lihat Mengevaluasi performa rencana.
Mengambil rencana secara otomatis
Gunakan pengambilan rencana otomatis untuk situasi seperti berikut ini:
Anda tidak tahu SQL pernyataan spesifik yang ingin Anda kelola.
Anda memiliki ratusan atau ribuan SQL pernyataan untuk dikelola.
Aplikasi Anda menggunakan klienAPI. Misalnya, JDBC menggunakan pernyataan siap tanpa nama atau pernyataan mode massal yang tidak dapat diekspresikan dalam psql.
Untuk mengambil rencana secara otomatis
Aktifkan pengambilan rencana otomatis dengan mengatur
apg_plan_mgmt.capture_plan_baselines
keautomatic
dalam grup parameter tingkat instans DB. Untuk informasi selengkapnya, lihat Memodifikasi parameter dalam grup parameter DB di Aurora.Saat aplikasi berjalan, pengoptimal menangkap rencana untuk setiap SQL pernyataan yang berjalan setidaknya dua kali.
Saat aplikasi berjalan dengan pengaturan parameter manajemen rencana kueri default, pengoptimal menangkap rencana untuk setiap SQL pernyataan yang berjalan setidaknya dua kali. Dengan mengambil semua rencana saat menggunakan pengaturan default, overhead run-time yang diperlukan akan sangat kecil dan hal ini dapat dilakukan dalam produksi.
Untuk menonaktifkan pengambilan rencana otomatis
-
Tetapkan parameter
apg_plan_mgmt.capture_plan_baselines
keoff
dari grup parameter tingkat instans DB.
Untuk mengukur performa rencana yang belum disetujui dan menyetujui, menolak, atau menghapusnya, lihat Mengevaluasi performa rencana.