Hola El día 3 de febrero de 2011 15:45, Gerardo Herzig <[email protected]> escribió: > Hola chicos. Estoy teniendo problemas con la lentitud de una funcion. > Estoy usando la funcion _xxfunction() dentro de un subselect, entonces > uso su forma select (_xxfunction()).* (en lugar de select * from..., > sino dentro del subquery me genera error sintactico), y el tema es que > tarda mucho mas un modo que el otro: > > test=# SELECT (_xxfunction(123)).* ; > (4 filas) > Duración: 1069,465 ms > > > test=# SELECT * from _xxfunction(123) ; > (4 filas) > Duración: 228,699 ms > > Alguna idea de porque de esto? Alguna alternativa? > Gracias! > > Gerardo > > - > Enviado a la lista de correo pgsql-es-ayuda ([email protected]) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda >
Si el tiempo es lineal t(n) = a n + b, entonces hacé una consulta que devuelva muchos más registros y determiná la pendiente a que es mucho más importante porque afecta el tiempo multiplicado por n que b que es fija. B bien puede deberse al tiempo de "cachear y compilar" la función, que si bien puede ser alto, ese precio se paga una sola vez por ejecución de la instrucción SELECT. Saludos. -- Guillermo O. Burastero Usuario GNU/Linux #84879 - http://counter.li.org/ Bahía Blanca, Buenos Aires, Argentina Tel. +54 (291) 454-6132 - Móvil [15] 574-3173 MSN: [email protected] ICQ: 97148268 - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
