Re: Query timing increased from 3s to 55s when used as function instead of select
От | Craig Ringer |
---|---|
Тема | Re: Query timing increased from 3s to 55s when used as function instead of select |
Дата | |
Msg-id | 4BFE95E1.4070701@postnewspapers.com.au обсуждение исходный текст |
Ответ на | Re: Query timing increased from 3s to 55s when used as function instead of select (Craig Ringer <craig@postnewspapers.com.au>) |
Список | pgsql-performance |
On 27/05/2010 11:33 PM, Craig Ringer wrote: > On 21/05/2010 9:54 PM, Tyler Hildebrandt wrote: >> We're using a function that when run as a select statement outside of the >> function takes roughly 1.5s to complete whereas running an identical >> query within a function is taking around 55s to complete. >> >> We are lost as to why placing this query within a function as opposed to >> substituting the variables in a select statement is so drastically >> different. > > This is a frequently asked question. It's the same issue as with > prepared queries, where the planner has to pick a more general plan when > it doesn't know the value of a parameter. The short answer is "work > around it by using EXECUTE ... USING to invoke your query dynamically". > > ( Oddly, this FAQ doesn't seem to be on the FAQ list at > http://wiki.postgresql.org/wiki/FAQ ) Added as: http://wiki.postgresql.org/wiki/FAQ#Why_is_my_query_much_slower_when_run_as_a_prepared_query.3F and the subsequent entry too. Comments, edits, clarification appreciated. I know it's not as well written as it could be, could use archive links, etc; it's just pass 1. -- Craig Ringer
В списке pgsql-performance по дате отправления: