On Apr 4, 2013, at 2:49 PM, Franck Routier <franck.rout...@axege.com> wrote:

> Le 04/04/2013 18:25, Tom Lane a écrit :
>> Franck Routier <franck.rout...@axege.com> writes:
>>> Right, explain alone takes 3.6 seconds, so the time really seems to go 
>>> query planning...
>> Well, you've not shown us the query, so it's all going to be
>> speculation.  But maybe you have some extremely expensive function that
>> the planner is evaluating to fold to a constant, or something like that?
>> The generated plan isn't terribly complicated, but we can't see what
>> was required to produce it.
>> 
>>                      regards, tom lane
>> 
>> 
> The request is not using any function. It looks like this:
> 
> SELECT *
>          FROM sanrss
>          LEFT JOIN sanrum  ON sanrum.sanrum___rforefide = 
> sanrss.sanrss___rforefide AND sanrum.sanrum___rfovsnide = 
> sanrss.sanrss___rfovsnide AND sanrum.sanrum___sanrsside = sanrss.sanrsside
>             LEFT JOIN sanact  ON sanact.sanact___rforefide = 
> sanrum.sanrum___rforefide AND sanact.sanact___rfovsnide = 
> sanrum.sanrum___rfovsnide AND sanact.sanact___sanrsside = 
> sanrum.sanrum___sanrsside AND sanact.sanact___sanrumide = sanrum.sanrumide 
> AND sanact.sanact___sanrumide   IS NOT NULL AND 
> sanact.sanact___rsanopide='CCAM'
>             LEFT JOIN sandia  ON sandia.sandia___rforefide = 
> sanrum.sanrum___rforefide AND sandia.sandia___rfovsnide = 
> sanrum.sanrum___rfovsnide AND sandia.sandia___sanrsside = 
> sanrum.sanrum___sanrsside AND sandia.sandia___sanrumide = sanrum.sanrumide 
> AND sandia.sandiasig=1
>             LEFT JOIN saneds  ON sanrss.sanrss___rforefide = 
> saneds.saneds___rforefide AND sanrss.sanrss___rfovsnide = 
> saneds.saneds___rfovsnide AND sanrss.sanrss___sanedside = saneds.sanedside
>             LEFT JOIN rsaidp  ON saneds.saneds___rforefide = 
> rsaidp.rsaidp___rforefide AND saneds.saneds___rsaidpide = rsaidp.rsaidpide
>               WHERE sanrss.sanrss___rforefide =  'CHCL'  AND 
> sanrss.sanrss___rfovsnide =  '201012_600'  AND sanrss.sanrsside =  '1188100'
>          ORDER BY sanrum.sanrumord, sanrum.sanrumide
> 
> Schema looks like this :
> rsaidp
>  |
>  v
> sanrss --------
>  |            |
>  v            v
> sanrum       sandia
>  |
>  v
> sanact
> 
> 
> Primary keys are most made of several varchars. Foreign keys do exist. Query 
> is getting these data for one specific sanrss.
> This used to take around 50ms to execute, and is now taking 3.5 seconds. And 
> it looks like this is spent computing a query plan...
> 
> I also tried: PREPARE qry(id) as select ....
> The prepare takes 3.5 seconds. Execute qry(value) takes a few milliseconds...
> 
> Regards,
> Franck

Is it only this query or all queries?

Reply via email to