sql >> Databáze >  >> RDS >> PostgreSQL

Žádné ukládání plánu provádění do mezipaměti pro dynamické SQL v PostgreSQL 9.4?

Podle dokumentace:

To je rozumná funkce . Povaha dynamických dotazů spočívá v tom, že mění svou strukturu od volání k volání.

Pokud chcete stejný dotaz volat opakovaně (volitelně s různými parametry), použijte připravené příkazy :

Nebo použijte prostý (nedynamický) kód SQL uvnitř funkcí plpgsql, s těmi se také zachází jako s připravenými příkazy.

Ve vašem případě , může být nejlepší PREPARE dotazy dynamicky. Měli jsme zde velmi podobný případ:

Také je extrémně neobvyklé, že dotaz stráví 1,4 sekundy plánováním a pouze 0,1 sekundy provedením. Možná stojí za to se podívat. Mohou existovat způsoby optimalizace. Stejně jako u join_collapse_limit :

Související:




  1. Mysql:Programově odstraňte všechny cizí klíče

  2. vyčištění db redundantních dat

  3. Nastavit výchozí hodnotu celočíselného sloupce SQLite

  4. Porušuje MySQL standard tím, že umožňuje výběr sloupců, které nejsou součástí skupiny podle klauzule?