sql >> Databasteknik >  >> RDS >> PostgreSQL

Ingen exekveringsplancachning för dynamisk SQL i PostgreSQL 9.4?

Per dokumentation:

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 :

Relaterat:




  1. MySQL - Hur man väljer data efter stränglängd

  2. PHP/Smarty Nested array från DB

  3. Använda DMV ( Dynamic Management View ) och DMF ( Dynamic Management Function ) | SQL Server Performance Felsökning -4

  4. MySQL UNIQUE-nyckel fungerar inte