Re: Functions too slow, even with iscachable?
От | Ang Chin Han |
---|---|
Тема | Re: Functions too slow, even with iscachable? |
Дата | |
Msg-id | 20000809145029.A5894@pintoo.com обсуждение исходный текст |
Ответ на | Re: Functions too slow, even with iscachable? (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-sql |
On Mon, Aug 07, 2000 at 10:58:27AM -0400, Tom Lane wrote: > (I assume the lack of "survey_id =" here is just a cut-and-paste error?) Yup. :) > I think what you're getting bit by is that the optimizer doesn't > recognize "var = function(param)" as being a potential indexscan clause. > Does EXPLAIN show that the first query is producing an indexscan plan? It did. I'll try to make up a reproducible test case, if you need it. > I have not tried it, but I think you could get around this problem in > plpgsql, along the lines of > tmp1 = ticket2name($1); > tmp2 = ticket2survey_id($1); > SELECT passwd FROM ticket WHERE name = tmp1 AND survey_id = tmp2; > since the tmp vars will look like params to the optimizer and "var = param" > is indexable. Yup, it did work. Thanks! > Looks like we need to teach the optimizer that expressions involving > params can be treated like simple params for the purposes of > optimization. That'll be good. Anything to speed up the stored procedures are good: encourage people to put logic processing into the RDBMS where it should be.
В списке pgsql-sql по дате отправления: