Det är en rimlig funktion . Karaktären hos en dynamisk fråga är att den ändrar sin struktur från anrop till anrop.
Om du vill anropa samma fråga upprepade gånger (valfritt med olika parametrar), använd förberedda satser :
Eller använd vanlig (icke-dynamisk) SQL-kod i plpgsql-funktioner, de behandlas också som förberedda satser.
I ditt fall , kan det vara bäst att PREPARE
frågor dynamiskt. Vi hade ett mycket liknande fall här:
Dessutom är det extremt ovanligt att en fråga spenderar 1,4 sek för planering och bara 0,1 sek för utförande. Kan vara värt att titta på. Det kan finnas sätt att optimera. Som med join_collapse_limit
:
- Exempelfråga för att visa Cardinality-uppskattningsfel i PostgreSQL
- Svar:Långsam fulltextsökning på grund av mycket felaktiga raduppskattningar
Relaterat: