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
:- Consulta de amostra para mostrar erro de estimativa de cardinalidade no PostgreSQL
- R:Pesquisa de texto completo lenta devido a estimativas de linha extremamente imprecisas
Relacionado: