Re: Question about explain of index scan

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Question about explain of index scan
Дата
Msg-id 13995.1125671505@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Question about explain of index scan  (Hannu Krosing <hannu@skype.net>)
Ответы Re: Question about explain of index scan  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Re: Question about explain of index scan  (Hannu Krosing <hannu@skype.net>)
Список pgsql-hackers
Hannu Krosing <hannu@skype.net> writes:
> If I get a plan like this, what will actually be performed if EXPLAIN
> shows this:

>  Sort  (cost=12.90..12.91 rows=1 width=207)
>    Sort Key: log_actionseq
>    ->  Index Scan using sl_log_1_idx2_hu, sl_log_1_idx2_hu,
> sl_log_1_idx2_hu, sl_log_1_idx2_hu on sl_log_1  (cost=0.00..12.89 rows=1
> width=207)
>          Index Cond: (
>    ((log_xid < '1349053093') AND (log_xid >= '1349052761')) 
> OR ((log_xid < '1349053093') AND (log_xid >= '1349052761')) 
> OR ((log_xid < '1349053093') AND (log_xid >= '1349052761')) 
> OR ((log_xid < '1349053093') AND (log_xid >= '1349052761'))
>                      )

> Will the same range be scanned 4 times ?

Yes.  However, I don't understand how you got that result; AFAIK the
planner should have eliminated the duplicate subclauses.  For example,
in 8.0 I get

regression=# explain select * from tenk1 where unique1 between 1 and 100 or unique1 between 1 and 100 or unique1
between1 and 100;                                  QUERY PLAN
 
---------------------------------------------------------------------------------Index Scan using tenk1_unique1 on
tenk1 (cost=0.00..360.63 rows=102 width=244)  Index Cond: ((unique1 >= 1) AND (unique1 <= 100))
 
(2 rows)

Is Slony doing something to bypass the planner?
        regards, tom lane


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

Предыдущее
От: "Merlin Moncure"
Дата:
Сообщение: Re: Call for 7.5 feature completion
Следующее
От: Matt Miller
Дата:
Сообщение: Re: PL/pgSQL: EXCEPTION NOSAVEPOINT