Trigger function, bad performance
От | Rogatzki Rainer |
---|---|
Тема | Trigger function, bad performance |
Дата | |
Msg-id | 595F977C01388944A4B5158975BB676385ABFD@sgzhmailbox.ggrz-hagen.nrw.de обсуждение исходный текст |
Ответы |
Re: Trigger function, bad performance
|
Список | pgsql-performance |
Hello, I'm having problems with the following bad performing select-statement in a trigger-function (on update before): ... for c in select id_country, sum(cost) as sum_cost from costs where id_user = p_id_user and id_state = 1 and date(request) between p_begin and p_until group by id_country; loop ... end loop; ... Explain shows that the following existing partial index isn't used: CREATE INDEX ix_costs_user_state_date_0701 ON costs USING btree(id_user, id_state, date(request)) WHERE id_state = 1 AND date(request) >= '2007-01-01'::date AND date(request) <= '2007-01-31'::date; The funny thing is, that while executing the statement with type-casted string-literals the index is used as expected: ... for c in select id_country, sum(cost) as sum_cost from costs where id_user = p_id_user and id_state = 1 and date(request) between '2007-01-01'::date AND '2007-01-31'::date group by id_country; loop ... end loop; ... Any ideas? Best regards Rainer Rogatzki (mailto:rainer.rogatzki@ggrz-hagen.nrw.de)
В списке pgsql-performance по дате отправления: