| 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 |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dimitri Fontaine | 2008-10-09 19:54:47 | Re: low performance on functions returning setof record |
| Previous Message | Sabin Coanda | 2008-10-09 14:47:30 | low performance on functions returning setof record |