View a markdown version of this page

Menggunakan cache paket bersama - Amazon Aurora

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 (termasuksearch_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 di apg_shared_plan_cache() dan apg_shared_plan_cache_stat()

  • apg_shared_plan_cache_remove(cache_key)— Menghapus entri dari apg_shared_plan_cache() tempat entri cocok dengan cache_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)