Thread: planner doesn't use multicolumn index
We've a table with about 8 million rows, and we need to get rows by the value of two of its fields( the type of the fields are int2 and int4, the where condition is v.g. partido=99 and partida=123). We created a multicolumn index on that fields but the planner doesn't use it, it still use a seqscan. That fields are primary key of the table and we clusterded the table based on that index, but it still doesn't work. We also set the enviroment variable enable_seqscan to false and nathing happends. The only way the planner use it is in querys that order by the expression of the index.
Any idea?
thanks.
Adrián
Do You Yahoo!?
Todo lo que quieres saber de Estados Unidos, América Latina y el resto del Mundo.
Visíta Yahoo! Noticias.
> We've a table with about 8 million rows, and we need to get rows by the > value of two of its fields( the type of the fields are int2 and int4, > the where condition is v.g. partido=99 and partida=123). We created a > multicolumn index on that fields but the planner doesn't use it, it > still use a seqscan. That fields are primary key of the table and we > clusterded the table based on that index, but it still doesn't work. We > also set the enviroment variable enable_seqscan to false and nathing > happends. The only way the planner use it is in querys that order by the > expression of the index. > Any idea? > thanks. > Adrián where partido=99::int2 and partida=123; Regards, Tomasz Myrta
Adrian Demaestri wrote: > We've a table with about 8 million rows, and we need to get rows by the value >of two of its fields( the type of the fields are int2 and int4, >the where condition is v.g. partido=99 and partida=123). We created a >multicolumn index on that fields but the planner doesn't use it, it still use >a seqscan. That fields are primary key of the table and we clusterded the table >based on that index, but it still doesn't work. We also set the enviroment > variable enable_seqscan to false and nathing happends. The only way the >planner use it is in querys that order by the expression of the index. Use partido=99::int2 and partida=123::int4 Match the data types basically.. Shridhar
On Wed, 8 Oct 2003 09:08:59 -0500 (CDT), Adrian Demaestri <ademaestri@yahoo.com> wrote: >the type of the fields are int2 and >int4, the where condition is v.g. partido=99 and partida=123). Write your search condition as WHERE partido=99::int2 and partida=123 Servus Manfred