Re: Rules and Triggers
От | Jan Wieck |
---|---|
Тема | Re: Rules and Triggers |
Дата | |
Msg-id | 200205171819.g4HIJVa07333@saturn.janwieck.net обсуждение исходный текст |
Ответ на | Re: Rules and Triggers ("Josh Berkus" <josh@agliodbs.com>) |
Список | pgsql-sql |
Josh Berkus wrote: > Ludwig, > > > I tried converting the rule to function & trigger > > and it reported that it used an Index scan given the > > same INSERT statement. > > > > I was wondering why the rule used sequentail scan > > and the equivalent function trigger used index scan. > > This is one of the documented differences between rules and triggers > (at least, I've seen it in the documentation *somewhere*). I can't > tell you "why", though ... hopefully Tom or Bruce will speak to that. Neither is *that* one of the differences between rules and triggers, nor *should* something like that be documented instead of fixed. There might be a difference in the selectivity when using OLD/NEW Var nodes vs. $n parameters, and therefore a different estimate by the optimizer. But in general rule generated queries are using indexes. Of course, that requires up to date statistics. Are the tables ANALYZE'd properly? > For myself, I use triggers for most things, and rules just for > updatable views. Aside for index efficiency, rules are a Postgres-only > thing, whereas several RDBMS's support triggers. Gives me marginally > better portability. As long as your queries only affect very few rows, you'll not notice much of a performance difference. Try updating a couple thousand rows with one UPDATE. A trigger will fire a couple thousand times, where a rule does allthe work in one additional query. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com #
В списке pgsql-sql по дате отправления: