Re: Why does index not use for CTE query?
| От | Robins Tharakan |
|---|---|
| Тема | Re: Why does index not use for CTE query? |
| Дата | |
| Msg-id | 4EF986C4.4080508@comodo.com обсуждение исходный текст |
| Ответ на | Why does index not use for CTE query? (AI Rumman <rummandba@gmail.com>) |
| Ответы |
Re: Why does index not use for CTE query?
|
| Список | pgsql-general |
Hi, The CTE is a distinct query and you're trying to do a SELECT * FROM t1. Which is quite expected to do a table scan. If you do a WHERE i=2 *within the CTE*, you should start seeing usage of the index where you're expecting to. -- Robins Tharakan On 12/27/2011 02:15 PM, AI Rumman wrote: > Why does index not use for CTE query? > I am using Postgresql 9.1 > > select version(); > version > -------------------------------------------------------------------------------------------------------- > PostgreSQL 9.1.1 on i686-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 > 20080704 (Red Hat 4.1.2-50), 32-bit > (1 row) > > > \d t1 > Table "public.t1" > Column | Type | Modifiers > --------+---------+----------- > i | integer | > nam | text | > Indexes: > "t1_i_idx" btree (i) > > > analyze t1; > explain select * from t1 where i=2; > QUERY PLAN > -------------------------------------------------- > Seq Scan on t1 (cost=0.00..1.09 rows=4 width=9) > Filter: (i = 2) > (2 rows) > > set enable_seqscan = off; > > explain select * from t1 where i=2; > QUERY PLAN > -------------------------------------------------------------------- > Index Scan using t1_i_idx on t1 (cost=0.00..12.32 rows=4 width=9) > Index Cond: (i = 2) > (2 rows) > > > explain > with q as (select * from t1) > select * from q where i=2; > > select * from q where i=2; > QUERY PLAN > ------------------------------------------------------------------------------ > CTE Scan on q (cost=10000000001.07..10000000001.23 rows=1 width=36) > Filter: (i = 2) > CTE q > -> Seq Scan on t1 (cost=10000000000.00..10000000001.07 rows=7 > width=9) > (4 rows) > > Index is not using here. > Could you tell me why? >
Вложения
В списке pgsql-general по дате отправления: