Skip site navigation (1) Skip section navigation (2)

Re: low performance on functions returning setof record

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Sabin Coanda" <sabin(dot)coanda(at)deuromedia(dot)ro>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: low performance on functions returning setof record
Date: 2008-10-09 19:30:51
Message-ID: 3693.1223580651@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-performance
"Sabin Coanda" <sabin(dot)coanda(at)deuromedia(dot)ro> writes:
> I use different functions returning setof record, and they are working well. 
> The problem is the performance when I use those functions in joins, for 
> instance:

>         SELECT *
>         FROM "Table1" t1
>                 JOIN "Function1"( a1, a2, ... aN ) AS f1( ColA int4, ColB 
> varchar, ... )
>                         ON t1.ColX = f1.ColA

> The problem is I'm not able to make indexes on the function, even inside I 
> have just another select statement from different permanent tables, with 
> some where clauses depending on the function arguments.

There's not a lot you can do about that at the moment.  8.4 will have
the ability to inline functions returning sets, if they're SQL-language
and consist of just a single SELECT, but existing releases won't do it.

You might consider trying to refactor your stuff to use views ...

			regards, tom lane

In response to

Responses

pgsql-performance by date

Next:From: Dimitri FontaineDate: 2008-10-09 19:54:47
Subject: Re: low performance on functions returning setof record
Previous:From: Sabin CoandaDate: 2008-10-09 14:47:30
Subject: low performance on functions returning setof record

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group