Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan cache paket bersama
Gambaran umum
Aurora PostgreSQL menggunakan model proses-per-pengguna 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 dibagikan antar proses, aplikasi yang menggunakan banyak pernyataan yang disiapkan dapat membuat cache duplikat di seluruh proses backend yang berbeda, yang mengarah pada peningkatan penggunaan memori.
Aurora PostgreSQL versi 17.6 dan yang lebih baru dan 16.10 dan yang lebih baru 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.
catatan
Babelfish untuk Aurora PostgreSQL mendukung cache paket bersama mulai dari versi 4.10 dan 5.6.
Cache paket bersama menggunakan komponen berikut sebagai kunci cache-nya:
String kueri (termasuk komentar)
Planner-related Parameter GUC (termasuk
search_path)ID Pengguna
ID Basis Data
Instance restart mengatur 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 instans) | 0—32768 (KB) |
apg_shared_plan_cache.idle_generic_plan_release_timeout |
Waktu setelah sesi idle merilis paket generik lokal. Nilai yang lebih rendah menghemat memori; nilai yang lebih tinggi dapat meningkatkan kinerja. | 10 detik | 0—2147483647 (ms) |
catatan
Anda dapat memodifikasi semua parameter tanpa memulai ulang.
Pemantauan 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 cocok dengancache_key
Batasan
Hanya berfungsi dengan pernyataan yang disiapkan dan tidak menyimpan PL/pgSQL pernyataan
Tidak menyimpan kueri yang berisi tabel sementara atau tabel katalog
Tidak menyimpan kueri yang bergantung pada RLS (Row-Level Keamanan)
Setiap replika mempertahankan cache-nya sendiri (tidak ada berbagi replika silang)