Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan cache paket bersama
Ikhtisar
Aurora PostgreSQL menggunakan process-per-user model di mana setiap koneksi klien membuat proses backend khusus. Setiap proses backend mempertahankan cache rencana lokalnya sendiri untuk pernyataan yang disiapkan. Karena cache ini tidak dapat dibagi antar proses, aplikasi yang menggunakan banyak pernyataan yang disiapkan dapat membuat cache duplikat di berbagai proses backend, yang mengarah pada peningkatan penggunaan memori.
Aurora PostgreSQL versi 17.6 dan yang lebih baru dan 16.10 dan kemudian memperkenalkan fungsionalitas cache paket bersama. Saat Anda mengaktifkan fitur ini, proses backend dapat berbagi paket generik, yang mengurangi penggunaan memori dan meningkatkan kinerja dengan menghilangkan pembuatan paket duplikat.
Cache paket bersama menggunakan komponen berikut sebagai kunci cache-nya:
String kueri (termasuk komentar)
Parameter GUC terkait perencana (termasuk)
search_pathID Pengguna
ID Database
Instans memulai ulang ulang cache bersama.
Parameter
Tabel berikut menjelaskan parameter yang mengontrol fitur cache paket bersama:
| Parameter | Deskripsi | Default | Diizinkan |
|---|---|---|---|
apg_shared_plan_cache.enable |
Mengaktifkan atau menonaktifkan cache paket bersama | 0 (MATI) | 0, 1 |
apg_shared_plan_cache.max |
Jumlah maksimum entri cache | 200—1000 (tergantung ukuran instance) | 100—50000 |
apg_shared_plan_cache.min_size_per_entry |
Ukuran paket minimum untuk disimpan dalam cache bersama. Paket yang lebih kecil menggunakan cache lokal untuk mengoptimalkan kinerja OLTP. | 16 KB | 0—32768 (KB) |
apg_shared_plan_cache.max_size_per_entry |
Ukuran paket maksimum untuk cache bersama. Paket yang lebih besar hanya menyimpan informasi biaya. | 256 KB—4 MB (tergantung ukuran instance) | 0—32768 (KB) |
apg_shared_plan_cache.idle_generic_plan_release_timeout |
Waktu setelah sesi idle merilis rencana generik lokal. Nilai yang lebih rendah menghemat memori; nilai yang lebih tinggi mungkin meningkatkan kinerja. | 10 detik | 0—2147483647 (ms) |
catatan
Anda dapat memodifikasi semua parameter tanpa memulai ulang.
Memantau tampilan dan fungsi
apg_shared_plan_cache()— Menampilkan informasi entri cache terperinci (hits, validitas, stempel waktu)apg_shared_plan_cache_stat()— Menampilkan statistik tingkat instance (penggusuran, pembatalan)apg_shared_plan_cache_reset()— Menghapus semua entri diapg_shared_plan_cache()danapg_shared_plan_cache_stat()apg_shared_plan_cache_remove(cache_key)— Menghapus entri dariapg_shared_plan_cache()tempat entri cocokcache_key
Batasan
Hanya berfungsi dengan pernyataan yang disiapkan dan tidak menyimpan PL/pgSQL pernyataan cache
Tidak menyimpan kueri yang berisi tabel sementara atau tabel katalog
Tidak menyimpan kueri yang bergantung pada RLS (Keamanan Tingkat Baris)
Setiap replika mempertahankan cache-nya sendiri (tidak ada berbagi lintas replika)