'Index Full Scan' for Index Scan without Index Cond

Поиск
Список
Период
Сортировка
От ITAGAKI Takahiro
Тема 'Index Full Scan' for Index Scan without Index Cond
Дата
Msg-id 20060606184700.539C.ITAGAKI.TAKAHIRO@oss.ntt.co.jp
обсуждение исходный текст
Ответы Re: 'Index Full Scan' for Index Scan without Index Cond  (Simon Riggs <simon@2ndquadrant.com>)
Re: 'Index Full Scan' for Index Scan without Index Cond  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-patches
Indexes are used for two purpose, for selection and for ordering, but EXPLAIN
shows them as 'Index Scan' in both cases. This patch changes EXPLAIN output of
Index Scan without Index Cond to 'Index Full Scan'.

It is for novice DBAs. I found that they said "Ok, this query uses an index",
but that is actually a bad plan; index full scan + merge join. After ANALYZE,
the plan was changed to nested loop + index selection, and performance was
improved. So I want to emphasize non-conditional index scan as index *full* scan.


[Example]

# CREATE TABLE test (j int, k int);
# INSERT INTO test SELECT n, n FROM generate_series(1, 100000) as n;
# ALTER TABLE test ADD PRIMARY KEY (j);
# ANALYZE;

# EXPLAIN SELECT j FROM test WHERE k < 20000 ORDER BY j;
Index Full Scan using test_pkey on test  (cost=0.00..2567.00 rows=21192 width=4)
  Filter: (k < 20000)

# EXPLAIN SELECT j FROM test WHERE j < 20000 ORDER BY j;
Index Scan using test_pkey on test  (cost=0.00..545.86 rows=21192 width=4)
  Index Cond: (j < 20000)

---
ITAGAKI Takahiro
NTT OSS Center

Вложения

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

Предыдущее
От: ITAGAKI Takahiro
Дата:
Сообщение: table/index fillfactor control
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: 'Index Full Scan' for Index Scan without Index Cond