Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo della cache del piano condiviso
Panoramica di
Aurora PostgreSQL utilizza un process-per-user modello in cui ogni connessione client crea un processo di backend dedicato. Ogni processo di backend mantiene la propria cache del piano locale per le istruzioni preparate. Poiché queste cache non possono essere condivise tra i processi, le applicazioni che utilizzano molte istruzioni preparate potrebbero creare cache duplicate tra diversi processi di backend, con conseguente aumento dell'utilizzo della memoria.
Aurora PostgreSQL versioni 17.6 e successive e 16.10 e successive introducono la funzionalità di cache del piano condiviso. Quando si abilita questa funzionalità, i processi di backend possono condividere piani generici, il che riduce l'utilizzo della memoria e migliora le prestazioni eliminando la generazione di piani duplicati.
La cache del piano condiviso utilizza i seguenti componenti come chiave di cache:
Stringa di query (inclusi i commenti)
Parametri GUC relativi a Planner (inclusi)
search_pathID utente
ID del database
I riavvii dell'istanza reimpostano la cache condivisa.
Parameters
La tabella seguente descrive i parametri che controllano la funzionalità di cache del piano condiviso:
| Parametro | Description | Predefinita | Consentito |
|---|---|---|---|
apg_shared_plan_cache.enable |
Attiva o disattiva la cache del piano condiviso | 0 (DISATTIVATO) | 0, 1 |
apg_shared_plan_cache.max |
Il numero massimo di voci della cache | 200-1000 (dipende dalla dimensione dell'istanza) | 100-50000 |
apg_shared_plan_cache.min_size_per_entry |
La dimensione minima del piano da archiviare nella cache condivisa. I piani più piccoli utilizzano la cache locale per ottimizzare le prestazioni OLTP. | 16 KB | 0—32768 (KB) |
apg_shared_plan_cache.max_size_per_entry |
La dimensione massima del piano per la cache condivisa. I piani più grandi memorizzano solo le informazioni sui costi. | 256 KB — 4 MB (dipende dalla dimensione dell'istanza) | 0-32768 (KB) |
apg_shared_plan_cache.idle_generic_plan_release_timeout |
Il periodo dopo il quale le sessioni inattive rilasciano i piani generici locali. Valori più bassi consentono di risparmiare memoria; valori più alti potrebbero migliorare le prestazioni. | 10 secondi | 0—2147483647 (ms) |
Nota
È possibile modificare tutti i parametri senza riavviare.
Visualizzazioni e funzioni di monitoraggio
apg_shared_plan_cache()— Mostra informazioni dettagliate sull'immissione nella cache (accessi, validità, timestamp)apg_shared_plan_cache_stat()— Visualizza le statistiche a livello di istanza (sfratti, annullamenti)apg_shared_plan_cache_reset()—apg_shared_plan_cache()Rimuove tutte le voci in eapg_shared_plan_cache_stat()apg_shared_plan_cache_remove(cache_key)— Rimuove una voce dalapg_shared_plan_cache()punto in cui la voce corrisponde acache_key
Limitazioni
Funziona solo con istruzioni preparate e non memorizza nella cache PL/pgSQL le istruzioni
Non memorizza nella cache una query che contiene tabelle temporanee o tabelle di catalogo
Non memorizza nella cache una query che dipende da RLS (Row-Level Security)
Ogni replica mantiene la propria cache (nessuna condivisione tra repliche)