PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Não há cache de plano de execução para SQL dinâmico no PostgreSQL 9.4?


Por documentação:

Esse é um recurso razoável . A natureza de uma consulta dinâmica é que ela muda sua estrutura de chamada para chamada.

Se você quiser chamar a mesma consulta repetidamente (opcionalmente com parâmetros diferentes), use instruções preparadas :

Ou use código SQL simples (não dinâmico) dentro de funções plpgsql, que também são tratadas como instruções preparadas.

No seu caso , talvez seja melhor PREPARE consultas dinamicamente. Tivemos um caso muito parecido aqui:

Além disso, é extremamente incomum que uma consulta gaste 1,4 segundo para planejamento e apenas 0,1 segundo para execução. Pode valer a pena investigar. Pode haver maneiras de otimizar. Como com join_collapse_limit :

Relacionado: