pgsql: Performance fix for new anti-join code in nodeMergejoin.c: after

Поиск
Список
Период
Сортировка
От tgl@postgresql.org (Tom Lane)
Тема pgsql: Performance fix for new anti-join code in nodeMergejoin.c: after
Дата
Msg-id 20080815192042.2B08E755315@cvs.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Log Message:
-----------
Performance fix for new anti-join code in nodeMergejoin.c: after finding a
match in antijoin mode, we should advance to next outer tuple not next inner.
We know we don't want to return this outer tuple, and there is no point in
advancing over matching inner tuples now, because we'd just have to do it
again if the next outer tuple has the same merge key.  This makes a noticeable
difference if there are lots of duplicate keys in both inputs.

Similarly, after finding a match in semijoin mode, arrange to advance to
the next outer tuple after returning the current match; or immediately,
if it fails the extra quals.  The rationale is the same.  (This is a
performance bug in existing releases; perhaps worth back-patching?  The
planner tries to avoid using mergejoin with lots of duplicates, so it may
not be a big issue in practice.)

Nestloop and hash got this right to start with, but I made some cosmetic
adjustments there to make the corresponding bits of logic look more similar.

Modified Files:
--------------
    pgsql/src/backend/executor:
        nodeHashjoin.c (r1.94 -> r1.95)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeHashjoin.c?r1=1.94&r2=1.95)
        nodeMergejoin.c (r1.92 -> r1.93)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeMergejoin.c?r1=1.92&r2=1.93)
        nodeNestloop.c (r1.47 -> r1.48)
        (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeNestloop.c?r1=1.47&r2=1.48)

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

Предыдущее
От: dpage@pgfoundry.org (Dave Page)
Дата:
Сообщение: stackbuilder - wizard: Remove extra bracket
Следующее
От: tgl@postgresql.org (Tom Lane)
Дата:
Сообщение: pgsql: Clean up the loose ends in selectivity estimation left by my