Re: uso de select (function()).* es mucho mas lento que select * from function()

From: Gerardo Herzig <gherzig(at)fmed(dot)uba(dot)ar>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: uso de select (function()).* es mucho mas lento que select * from function()
Date: 2011-02-10 13:20:53
Message-ID: 1297344053.22462.26.camel@inca.fmed.uba.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El mié, 09-02-2011 a las 14:20 -0300, Alvaro Herrera escribió:
> Excerpts from Gerardo Herzig's message of jue feb 03 15:45:38 -0300 2011:
> > 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!
>
> Si mal no recuerdo, al hacer ().* se ejecuta la función tantas veces
> como columnas haya en el resultado. Quizás funcione algo como
>
> select foo.* from (select * from _xxfunction(123) offset 0) as foo;
>

Gracias Alvaro, si, tenes razon, pasa que no exprese bien mi problema,
que es ligeramente distinto (creo)

Yo tengo que lograr algo como

select * from _xxfunction(codigo) from (select codigo from tabla)
Y esto tiene un error de sintaxis.

Si uso la forma select (_xxfunction(codigo)).* from (select codigo from
tabla)
elimino el error sintactico, pero como bien decis, llamo muchas veces a
la funcion, y se torna demasiado lento.

Y no logro dar con el modo correcto para evitar el uso de (f()).*

Gracias!
Gerardo

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2011-02-10 14:52:56 Re: sobre DDL
Previous Message Emanuel Calvo Franco 2011-02-10 12:20:39 [OT] Curso Nivel 1 y 2 DBA Postgres