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 condivisa del piano
Panoramica di
Aurora PostgreSQL utilizza un modello processo per utente 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 processi, le applicazioni che utilizzano molte istruzioni preparate potrebbero creare cache duplicate tra diversi processi di backend, il che comporta un maggiore utilizzo della memoria.
Le versioni 17.6 e successive di Aurora PostgreSQL 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.
Nota
Babelfish for Aurora PostgreSQL supporta la cache dei piani condivisi a partire dalle versioni 4.10 e 5.6.
La cache del piano condiviso utilizza i seguenti componenti come chiave di cache:
Stringa di interrogazione (compresi i commenti)
Planner-related Parametri GUC (inclusi
search_path)ID utente
ID del database
Il riavvio dell'istanza reimposta 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 |
L'intervallo di tempo 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.
Monitoraggio delle visualizzazioni e delle funzioni
apg_shared_plan_cache()— Mostra informazioni dettagliate sull'immissione nella cache (visite, validità, timestamp)apg_shared_plan_cache_stat()— Visualizza le statistiche a livello di istanza (sfratti, invalidazioni)apg_shared_plan_cache_reset()— Rimuove tutteapg_shared_plan_cache()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)