sql >> Database >  >> RDS >> PostgreSQL

Geen caching van uitvoeringsplan voor dynamische SQL in PostgreSQL 9.4?

Per documentatie:

Dat is een redelijke functie . De aard van een dynamische vraag is dat het de structuur van aanroep tot aanroep verandert.

Als u dezelfde query herhaaldelijk wilt oproepen (optioneel met verschillende parameters), gebruikt u prepared statements :

Of gebruik gewone (niet-dynamische) SQL-code in plpgsql-functies, die worden ook behandeld als voorbereide instructies.

In jouw geval , is het misschien het beste om PREPARE dynamisch opvragen. We hadden hier een vergelijkbare zaak:

Het is ook extreem ongewoon dat een query 1,4 sec besteedt aan planning en slechts 0,1 sec aan uitvoering. Misschien het onderzoeken waard. Er kunnen manieren zijn om te optimaliseren. Zoals met join_collapse_limit :

Gerelateerd:




  1. PostgreSQL FOUT:INSERT heeft meer doelkolommen dan expressies, als dat niet het geval is

  2. MYSQL-query om datumverschil te krijgen

  3. Veranderingen in de Oracle-interface

  4. MySQL Query Tuning - Waarom is het gebruik van een waarde van een variabele zo veel langzamer dan het gebruik van een letterlijke?