Re: Optimizer failure on update w/integer column

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Optimizer failure on update w/integer column
Дата
Msg-id 15165.1055721135@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Optimizer failure on update w/integer column  (nolan@celery.tssi.com)
Ответы Re: Optimizer failure on update w/integer column
Список pgsql-general
nolan@celery.tssi.com writes:
> If I drop the index on missing_ids completely, it runs much faster, 35
> seconds the first time, 38 seconds when I ran it a second time.

> I then recreated the index on missing_ids(memtranseq), the execution time
> slowed down to 48 seconds the first time I reran the update, and it took
> 262 seconds when I ran the update again.  Subsequent passes got progressivly
> slower: 371 seconds, then 764 seconds.

This is a unique index, right?  Seems like the cost must be related to
checking for uniqueness violations --- the index code has to plow
through all the index entries with the same key, visit their associated
heap tuples, confirm those tuples are dead (or being deleted by the
current transaction).  You could check this by seeing what the cost
profile looks like with a nonunique index in place.

I'm not quite sure *why* it's happening though.  7.3 is supposed to have
code in it to forestall indefinite growth of the number of heap visits
that have to be made.  Hmm ... were you doing the repeated passes all in
a single transaction block, or were you allowing the previous updates to
commit before you tried again?

            regards, tom lane

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

Предыдущее
От: nolan@celery.tssi.com
Дата:
Сообщение: Re: Optimizer failure on update w/integer column
Следующее
От: Markus Bertheau
Дата:
Сообщение: Re: [HACKERS] UTF8 and KOI8 mini-howto