RE: por que SEQ SCAN Y NO INDEX SCAN

From: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>
To: "'pgsql-es-ayuda(at)postgresql(dot)org'" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: por que SEQ SCAN Y NO INDEX SCAN
Date: 2008-04-19 15:24:51
Message-ID: 410117BB01F4D611B73A00010331DD2403B58C7B@tsnt.tsr.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

-----Mensaje original-----
De: Jaime Casanova [mailto:systemguards(at)gmail(dot)com]
Enviado el: Viernes, 18 de Abril de 2008 10:42 a.m.
Para: Alvaro Herrera
CC: MIGUEL CANCHAS; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] por que SEQ SCAN Y NO INDEX SCAN

On Fri, Apr 18, 2008 at 10:29 AM, Alvaro Herrera
<alvherre(at)commandprompt(dot)com> wrote:
> MIGUEL CANCHAS escribió:
> > Tengo esta consulta, segun tengo entendido tendria que hacerse un index
scan
> > y no un seq scan , por que ?
> > Tengo indices en las tablas que corresponde a las uniones que hago
> >
> > EXPLAIN ANALYSE SELECT
> > [...]
> > FROM
> > public.hrt1
> > INNER JOIN public.mclientes ON (public.hrt1.idcliente =
> > public.mclientes.idcliente)
> > INNER JOIN public.mcolores ON (public.hrt1.idcolor =
> > public.mcolores.idcolor)
> >
>
> La razon por la que no usa ningun indice aqui es que de todas formas
> tiene que recorrer las tablas completas, asi que usar indices lo haría
> más lento. Si tuvieras un WHERE apropiado seguramente usaría índices.
>
>

cabe recordar que en postgres no existen (aun) las lecturas solo
indices, es decir, lee el indice y luego lee las tuplas de las tablas
para ver si aun son validas... asi que si piensa que van a ser muchas
tuplas es doble trabajo y lo evita haciendo el seq scan

--
Atentamente,
Jaime Casanova
Soporte de PostgreSQL
Guayaquil - Ecuador
Cel. 087171157
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)

*************////////////////////

Entonces como puedo solucionarlo ?
Es una consulta en donde se demora 34 segundos en "botarme" 11 registros,
demasiado tiempo.

Miguel

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-04-19 15:28:10 Re: por que SEQ SCAN Y NO INDEX SCAN
Previous Message carlos alvarez osejo 2008-04-19 15:22:20 Re: Arrancar postgres