Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2011, 23:02
camarquezz
 
Fecha de Ingreso: febrero-2007
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Forzar uso de idices

Buenos dias a todos

Mi pregunta es si ahi algun metodo para obligar a postgres a usar indices en una consulta especifica o en todas las consultas ya que tengo unas consultas con campos indexados y observando en el explain de pgadmin puedo ver que una consulta usa el indice cuando le paso ciertos parametros pero cuando le mando otros parametros no usa el indice. El caso especifico es el sgte:

Tengo este indice:

CREATE INDEX indicedictionarylv1
ON tabla
USING btree
(dictionary_lv1 NULLS FIRST);

luego ejecuto esta consulta:

SELECT dictionary_lv1 FROM tabla WHERE dictionary_lv1 = 'B'
retorna al rededor de 15.000 registros

y observo el explain de pgadmin y veo que si ejecuta el indice, pero si ejecuto esta otra consulta

SELECT dictionary_lv1 FROM tabla WHERE dictionary_lv1 = 'C'
retorna al rededor de 321.000 registros

y observo el explain veo que no utiliza el indice y por lo tanto la consulta tarda demasiado tiempo. Como pueden ver la consulta es la misma lo unico que cambia es el parametro y no entiendo por que en una usa el indice y en la otra no.

Agradesco de antemano cualquier ayuda. Muchas gracias