Re: El indice no mejora me mejora el rendimiento de mis consultas.

From: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
To: Sebastian Machuca <serroba(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: El indice no mejora me mejora el rendimiento de mis consultas.
Date: 2009-08-27 14:35:18
Message-ID: 3073cc9b0908270735g39fc966bvfe49fd2ce1f9a53c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2009/8/27 Sebastian Machuca <serroba(at)gmail(dot)com>:
>
> Para que me sirve el indice entonces.

para optimizar consultas en que debas leer solo una pequena fraccion
de los registros... pero ojo como te he repetido ya dos veces antes no
estas leyendo solo 2 registros, necesitas leerlos todos para verificar
que no hayan mas valores distintos en la tabla...

y una vez con esos valores debe verificar en la tabla que los
registros que escogio aun sean validos (que no hayan sido borrados por
una transaccion concurrente que haya hecho commit)

> Probablemente tengo mal el concepto de
> indice, porque yo tenia entendido que si tengo el asunto indexado, y hago
> una consulta sobre solo una columna que efectivamente esta indexada, yo
> asumí que el distinct, o el group by debería ejecutarse sobre el indice y
> después arrojar los resultados obtenidos

y eso hace, solo que por cada registro debe verificar la validez del
registro en la tabla... en otras palabras, usar el indice te asegura
que vas a leer los datos dos veces...

> y en ese caso, desde lo que yo
> pensaba, como el indice solo tiene 2 valores distintos, debería ser muy
> rápido.
>

igual debe leer los 385000 registros en el indice...

>>
>> tengo la sospecha de que tanto work_mem te hace mas dano que bien...
>> que pasa si ejecutas "set enable_indexscan to off;" antes de la
>> consulta?
>
> Por que tanto work_mem puede hacer dano??

probablemente en este caso no, despues de todo no parece que esta
consulta este haciendo nada que requiera de work_mem.
probaste con "SET enable_indexscan TO OFF;" como te dije?

la idea de apagar el indexscan es que trate de hacer una lectura
secuencial en toda la tabla (que igual estas leyendo toda la tabla
usando el indexscan)

quiza eso fuerze (al hacer la version de la consulta con GROUP BY a
usar una hash en memoria, igual tienes un work_mem bien alto)

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sebastian Machuca 2009-08-27 15:30:18 Re: El indice no mejora me mejora el rendimiento de mis consultas.
Previous Message Manuel A. Estevez Fernandez 2009-08-27 14:34:13 documentacion Pgpool II