Re: Query timing increased from 3s to 55s when used as a function instead of select - Mailing list pgsql-performance

From Merlin Moncure
Subject Re: Query timing increased from 3s to 55s when used as a function instead of select
Date
Msg-id AANLkTilo7ySxA-Z47lF6jMdgzM7yv3s25-sYTiPWNwyl@mail.gmail.com
Whole thread Raw
In response to Re: Query timing increased from 3s to 55s when used as a function instead of select  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-performance
On Tue, May 25, 2010 at 10:55 AM, Merlin Moncure <mmoncure@gmail.com> wrote:
> On Tue, May 25, 2010 at 9:41 AM, Tyler Hildebrandt
> <tyler@campbell-lange.net> wrote:
>>> I think, your problem is here:
>>>
>>> SELECT INTO current_user * FROM
>>> fn_medirota_validate_rota_master(in_currentuser);
>>>
>>>
>>> The planner has no knowledge about how many rows this functions returns
>>> if he don't know the actual parameter. Because of this, this query
>>> enforce a seq-scan. Try to rewrite that to something like:
>>>
>>> execute 'select * from fn_medirota_validate_rota_master(' ||
>>> in_currentuser' || ')' into current_user
>>>
>>
>> Thanks for your response.  This doesn't seem to solve our issue, unfortunately.
>>
>> As a side to that, we have the fn_medirota_validate_rota_master calls in a
>> large amount of our other functions that are running very well.
>
> any chance of seeing the function source?

oops! I missed it :-).  looking at your function, what version of
postgres? have you experimented w/return query?

merlin

pgsql-performance by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Query timing increased from 3s to 55s when used as a function instead of select
Next
From: "Jorge Montero"
Date:
Subject: Re: Query timing increased from 3s to 55s when used as a function instead of select