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

Ingen execution plan caching for dynamisk SQL i PostgreSQL 9.4?

Pr. dokumentation:

Det er en rimelig funktion . Karakteren af ​​en dynamisk forespørgsel er, at den ændrer sin struktur fra opkald til opkald.

Hvis du vil kalde den samme forespørgsel gentagne gange (valgfrit med forskellige parametre), skal du bruge forberedte sætninger :

Eller brug almindelig (ikke-dynamisk) SQL-kode i plpgsql-funktioner, disse behandles også som forberedte sætninger.

I dit tilfælde , er det måske bedst at PREPARE forespørgsler dynamisk. Vi havde en meget lignende sag her:

Det er også ekstremt ualmindeligt, at en forespørgsel bruger 1,4 sek på planlægning og kun 0,1 sek på udførelse. Kan være værd at kigge nærmere på. Der kan være måder at optimere på. Gerne med join_collapse_limit :

Relateret:




  1. indstille isolationsniveau for postgresql lagrede procedurer

  2. Henter kolonneinformation (sammensat nøgle) i SQL

  3. SQLAlchemy:Tjek om en given værdi er på en liste

  4. MySQL genererer ikke korrekte resultater ved hjælp af ODBC-datoparameter