PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Nessuna memorizzazione nella cache del piano di esecuzione per SQL dinamico in PostgreSQL 9.4?

Per documentazione:

Questa è una caratteristica ragionevole . La natura di una query dinamica è che cambia la sua struttura da una chiamata all'altra.

Se desideri chiamare la stessa query ripetutamente (facoltativamente con parametri diversi), utilizza istruzioni preparate :

Oppure usa un codice SQL semplice (non dinamico) all'interno delle funzioni plpgsql, anche quelle vengono trattate come istruzioni preparate.

Nel tuo caso , potrebbe essere meglio PREPARE interroga in modo dinamico. Abbiamo avuto un caso molto simile qui:

Inoltre, è estremamente raro che una query impieghi 1,4 secondi per la pianificazione e solo 0,1 secondi per l'esecuzione. Potrebbe valere la pena esaminarlo. Potrebbero esserci modi per ottimizzare. Come con join_collapse_limit :

Correlati: