Re: strange explain - Mailing list pgsql-hackers
From | Oleg Bartunov |
---|---|
Subject | Re: strange explain |
Date | |
Msg-id | Pine.GSO.4.44.0205131925140.10506-100000@ra.sai.msu.su Whole thread Raw |
In response to | Re: strange explain (Tom Lane <tgl@sss.pgh.pa.us>) |
List | pgsql-hackers |
Tom, one more question. What's the difference for planner between 2 queries ? For the first query I have plain index scan, but multiple index scan for second. tour=# explain analyze select * from tours where ( operator_id in (2,3,4,5,7) and type_id = 2 ); NOTICE: QUERY PLAN: Index Scan using type_idx on tours (cost=0.00..2.03 rows=1 width=1091) (actual time=0.03..0.03 rows=0 loops=1) Total runtime: 0.16 msec EXPLAIN tour=# explain analyze select * from tours where ( operator_id in (2,3,4,5,7) and type_id = 4 ) or (operator_id = 8 and type_id = 3); NOTICE: QUERY PLAN: Index Scan using type_idx, type_idx, type_idx, type_idx, type_idx, type_idx on tours (cost=0.00..12.25 rows=1 width=1091)(actual time=0.27..0.27 rows=0 loops=1) Total runtime: 0.44 msec EXPLAIN On Mon, 13 May 2002, Tom Lane wrote: > Oleg Bartunov <oleg@sai.msu.su> writes: > > tour=# explain analyze select * from tours where > > ( operator_id in (2,3,4,5,7) and type_id = 2 ) or > > ( operator_id = 8 and type_id=4 ); > > > Index Scan using type_idx, type_idx, type_idx, type_idx, type_idx, type_idx on tours (cost=0.00..12.25 rows=1 width=1091)(actual time=0.26..0.26 rows=0 loops=1) > > > What does many 'type_idx' means ? > > Multiple indexscans. > > It looks to me like your WHERE clause is being flattened into > > ( operator_id = 2 and type_id=2 ) or > ( operator_id = 3 and type_id=2 ) or > ( operator_id = 4 and type_id=2 ) or > ( operator_id = 5 and type_id=2 ) or > ( operator_id = 7 and type_id=2 ) or > ( operator_id = 8 and type_id=4 ) > > and then it has a choice of repeated indexscans on operator_id or > type_id. Depending on the selectivity stats it might pick either. > You might find that a 2-column index on both would be a win. > > regards, tom lane > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
pgsql-hackers by date: