On Tue, 25 Jun 2013 17:25:21 -0500
William Diaz Pabón <wid...@gmail.com> wrote:

> Saludos lista.
> 
> Tengo esta BD
> 
> Version string PostgreSQL 8.4.17 on i686-pc-linux-gnu, compiled by
> GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 32-bit
> 
> Donde tengo una tabla con un campo estado que tiene esta constraint
> 
> CHECK (estado::text = 'ACTIVO'::text OR estado::text =
> 'INACTIVO'::text OR estado::text = 'PAGADO'::text OR estado::text =
> 'CANJE'::text OR estado::text = 'LIQUIDADO'::text OR estado::text =
> 'CONVENIO'::text OR estado::text = 'REFINANCIADO'::text OR
> estado::text = 'PRESCRITO'::text),
> 
> cuando hago un select donde el where hace *estado = 'INACTIVO'* y
> hago un explain query me indica que esta usando el indice.
> 
> pero cuando hago *estado = 'ACTIVO'*     y hago un explain query me
> indica que NO esta usando el indice. y me dice que hay 158 mil filas.
> 
> como se hace para que sin importar la cantidad de registros use
> siempre el indice?

No se puede, si tenes 158 mil registros con estado = ACTIVO y queres
ver esos registros siempre tiene que usar seqscan porque es mas
efectivo que usar el indice....ahora si, el numero esta equivocado por
favor pasa select estado, count(*) from <tabla> group by 1; para ver
que esta pasando....

> 
> PD: Ya le hice un vacuum y nada.
> 
> 


-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a