

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

# Mengambil rencana eksekusi Aurora PostgreSQL
<a name="AuroraPostgreSQL.Optimize.CapturePlans"></a>

Manajemen rencana kueri Aurora PostgreSQL menawarkan dua mode berbeda untuk mengambil rencana eksekusi kueri, yaitu otomatis atau manual. Anda memilih mode dengan mengatur nilai `apg_plan_mgmt.capture_plans_baselines` ke `automatic` atau ke `manual`. Anda dapat mengambil rencana eksekusi untuk pernyataan SQL tertentu 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\$1plan\$1mgmt.max\$1plans](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.max_plans). 

## Mengambil rencana secara manual untuk pernyataan SQL tertentu
<a name="AuroraPostgreSQL.Optimize.CapturePlans.Manual"></a>

Jika Anda memiliki kumpulan pernyataan SQL yang diketahui untuk dikelola, masukkan pernyataan tersebut ke dalam file skrip SQL lalu ambil rencana secara manual. Hal berikut ini menunjukkan contoh psql tentang cara mengambil rencana kueri secara manual untuk kumpulan pernyataan SQL.

```
psql> SET apg_plan_mgmt.capture_plan_baselines = manual;
psql> \i my-statements.sql 
psql> SET apg_plan_mgmt.capture_plan_baselines = off;
```

Setelah mengambil rencana untuk setiap pernyataan SQL, pengoptimisasi menambahkan baris baru ke tampilan `apg_plan_mgmt.dba_plans`.

Kami menyarankan Anda menggunakan pernyataan EXPLAIN atau EXPLAIN EXECUTE di file skrip SQL. 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\$1hint\$1plan](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan). Untuk membandingkan performa rencana `unapproved` dan `approved` serta menyetujui, menolak, atau menghapusnya, lihat [Mengevaluasi performa rencana](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance). 

## Mengambil rencana secara otomatis
<a name="AuroraPostgreSQL.Optimize.CapturePlans.Automatic"></a>

Gunakan pengambilan rencana otomatis untuk situasi seperti berikut ini:
+ Anda tidak mengetahui pernyataan SQL spesifik yang ingin Anda kelola.
+ Anda memiliki ratusan atau ribuan pernyataan SQL untuk dikelola.
+ Aplikasi Anda menggunakan API klien. Misalnya, JDBC menggunakan pernyataan yang disiapkan tanpa nama atau pernyataan mode massal yang tidak dapat dinyatakan dalam psql.

**Untuk mengambil rencana secara otomatis**

1. Aktifkan pengambilan rencana otomatis dengan mengatur `apg_plan_mgmt.capture_plan_baselines` ke `automatic` dalam grup parameter tingkat instans DB. Untuk informasi selengkapnya, lihat [Memodifikasi parameter dalam grup parameter DB di ](USER_WorkingWithParamGroups.Modifying.md). 

1. Saat aplikasi berjalan, pengoptimisasi mengambil rencana untuk setiap pernyataan SQL yang berjalan setidaknya dua kali.

   Saat aplikasi berjalan dengan pengaturan parameter manajemen rencana kueri default, pengoptimisasi mengambil rencana untuk setiap pernyataan SQL 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` ke `off` dari grup parameter tingkat instans DB.

Untuk mengukur performa rencana yang belum disetujui dan menyetujui, menolak, atau menghapusnya, lihat [Mengevaluasi performa rencana](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance). 