Re: performance on update table from a join

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: performance on update table from a join
Дата
Msg-id 2240.1020203468@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: performance on update table from a join  (Jean-Luc Lachance <jllachan@nsd.ca>)
Список pgsql-sql
Jean-Luc Lachance <jllachan@nsd.ca> writes:
> Hash Join  (cost=1943.04..136718.39 rows=100 width=660)
>   ->  Seq Scan on c  (cost=0.00..112409.04 rows=1156604 width=519)
>   ->  Hash  (cost=1939.63..1939.63 rows=1365 width=141)
>         ->  Merge Join  (cost=0.00..1939.63 rows=1365 width=141)
>               ->  Index Scan using routes_str_mun on routes r 
> (cost=0.00..1053.46 rows=13928 width=77)
>               ->  Index Scan using rs_stname on rs s  (cost=0.00..704.11
> rows=10942 width=64)

Okay, those numbers look more believable.

Offhand this seems like a perfectly fine plan to me; computing the
r/s join once and forming it into an in-memory hashtable seems better
than probing the r and s tables again for each of 1M+ rows of c.
If the planner is way off about the size of that join (ie, it's not
1365 rows but many more) then maybe this isn't a good plan --- but you
haven't given us any info about that.

> I have also the following indecies that are ot being used:
> create index routes_ex_str_mun on routes( exchangeno, street,
> municipality);
> create index rs_ostr_omun on rs( oldstname, oldmuni);

That routes index could be used for the mergejoin if you had a
corresponding index on rs (ie, one on exchangeno,stname,municipality).
Not sure that this would make any significant improvement though.
Merging on street name is probably plenty good enough.

My thought is that the plan is fine, and if you are having a performance
problem with the update, it's more likely due to operations triggered by
the update rather than anything the planner can alter.  Do you have
rules, triggers, foreign keys on the c table, foreign keys pointing to
that table, a large number of indexes for that table?
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: Jean-Luc Lachance
Дата:
Сообщение: Re: performance on update table from a join
Следующее
От: Jean-Luc Lachance
Дата:
Сообщение: Re: performance on update table from a join