View not using index - Mailing list pgsql-sql

From gmb
Subject View not using index
Date
Msg-id 1442318204445-5865953.post@n5.nabble.com
Whole thread Raw
Responses Re: View not using index
Re: View not using index
List pgsql-sql
HI 

I hope somebody can give some guidance.
Since our application make extensive use of views, this is becoming a
concern for me.

Please see below:

CREATE TABLE detail ( invno VARCHAR, accno INTEGER, info INTEGER[] );

CREATE OR REPLACE VIEW detailview AS 
( SELECT invno , accno , COALESCE( info[1],0 ) info1, COALESCE( info[2],0 )
info2, COALESCE( info[3],0 ) info3, COALESCE( info[4],0 ) info4 FROM detail
);

CREATE INDEX detail_ix_info3 ON detail ( ( info[3]  ) ) WHERE  COALESCE(
info[3],0 ) = 1;

EXPLAIN SELECT * FROM detail WHERE COALESCE( info[3],0 ) =1;
                                 QUERY PLAN                                  
------------------------------------------------------------------------------Bitmap Heap Scan on detail
(cost=4.13..12.59rows=4 width=68)  Recheck Cond: (COALESCE(info[3], 0) = 1)  ->  Bitmap Index Scan on detail_ix_info3
(cost=0.00..4.13rows=4
 
width=0)
(3 rows)

EXPLAIN SELECT * FROM detailview WHERE COALESCE( info3,0 ) =1;
                      QUERY PLAN                       
--------------------------------------------------------Seq Scan on detail  (cost=0.00..20.38 rows=4 width=68)  Filter:
(COALESCE(COALESCE(info[3],0), 0) = 1)
 
(2 rows)


This is an oversimplified example; the view in our production env provides
for 20 elements in the info array column. My table in productions env
contains ~10mil rows.

Is there any way in which I can force the view to use the index?


Regards




--
View this message in context: http://postgresql.nabble.com/View-not-using-index-tp5865953.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.



pgsql-sql by date:

Previous
From: David Nelson
Date:
Subject: Re: Showing a cumlative total by month
Next
From: Brice André
Date:
Subject: Re: View not using index