Esa es una característica razonable . La naturaleza de una consulta dinámica es que cambia su estructura de una llamada a otra.
Si desea llamar a la misma consulta repetidamente (opcionalmente con diferentes parámetros), use declaraciones preparadas :
O use código SQL simple (no dinámico) dentro de las funciones plpgsql, que también se tratan como declaraciones preparadas.
En tu caso , podría ser mejor PREPARE
consultas de forma dinámica. Tuvimos un caso muy similar aquí:
Además, es extremadamente es poco común que una consulta dedique 1,4 segundos a la planificación y solo 0,1 segundos a la ejecución. Puede valer la pena investigar. Puede haber formas de optimizar. Como con join_collapse_limit
:
- Consulta de muestra para mostrar el error de estimación de cardinalidad en PostgreSQL
- R:búsqueda de texto completo lenta debido a estimaciones de filas muy imprecisas
Relacionado:
- Rendimiento de procedimientos almacenados de PostgreSQL
- ¿Cómo se compilan las declaraciones preparadas?