"José Alberto Sánchez Nieto (Trabajo)" escribió: > Esta función es llamada desde un programa en java, el caso es que se ejecuta > entre 400.000 y 800.000 veces y claro, aunque las diferencias tal y cómo se > han mostrado son pocas, al producirse en tantas ejecuciones sí que son muy > significativas.
Esto es mal diseño. Considera agregar otra función que en lugar de retornar los detalles de los registros uno a uno, te devuelva los 400.000 u 800.000 de una sola vez, para evitar el excesivo sobrecosto de invocar plpgsql tantas veces. > - Poner dentro de la función la select sin parámetros poniendo el valor > directamente y me tarda más ó menos igual (0.230) > - Lo que sí me ha funcionado es la sugerencia de Alvaro, desde la shell poner > el PREPARE y luego utilizar el EXPLAIN ANALIZE EXECUTE, con esto sí que los > tiempos son exactamente iguales que lanzar la consulta desde la shell (0.045) Ambos resultados llevan a la misma conclusión: las consultas no son lentas, el problema es el sobrecosto de meterlas en plpgsql. Ya te comentaron eso antes. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda