[Pgsql-ayuda] Indices

Edgar Raul Acosta Villase~or edgar@tlahui.posgrado.unam.mx
Thu, 7 Jun 2001 14:15:57 -0500 (CDT)


Hola a todos,

	No saben de alguna guia, mas completa que lo que viene en el
manual de postgres, para el uso de indices? Estoy usando postgres 7.1

	Resulta que tengo una tabla de millon y medio de registros y el
optimizador de postgres no usa los indices en la gran mayoria de
consultas por ejemplo esta es una consulta donde si usa el indice:

=# explain select * from folios order by cuenta;
NOTICE:  QUERY PLAN:

Index Scan using folios_cuenta_idx on folios  (cost=0.00..277336.16
rows=1220457 width=104)

pero si hago casi la misma consulta pero con solo algunos de los campos ya
no usa el indice, tampoco si agrego una clausula where:

=# explain select folio from folios order by cuenta;
NOTICE:  QUERY PLAN:

Sort  (cost=216448.61..216448.61 rows=1220457 width=8)
  ->  Seq Scan on folios  (cost=0.00..27546.57 rows=1220457 width=8)

=# explain select cuenta from folios order by cuenta;
NOTICE:  QUERY PLAN:

Sort  (cost=188648.61..188648.61 rows=1220457 width=4)
  ->  Seq Scan on folios  (cost=0.00..27546.57 rows=1220457 width=4)

=# explain select anio,sem,folio from folios order by cuenta;
NOTICE:  QUERY PLAN:

Sort  (cost=225388.61..225388.61 rows=1220457 width=12)
  ->  Seq Scan on folios  (cost=0.00..27546.57 rows=1220457 width=12)

Incluso si hago el where con el campo indexado.

=# explain select * from folios where cuenta=96616242;
NOTICE:  QUERY PLAN:

Seq Scan on folios  (cost=0.00..30597.71 rows=12205 width=104)

=# explain select * from folios where cuenta=96616242 order by cuenta;
NOTICE:  QUERY PLAN:

Sort  (cost=31815.07..31815.07 rows=12205 width=104)
  ->  Seq Scan on folios  (cost=0.00..30597.71 rows=12205 width=104)


	Saludos

		Edgar Acosta