Re: Ayuda con rendimiento..

From: Mario <gonzalemario(at)gmail(dot)com>
To: "Leonardo Castillo" <leonardo(at)hacer(dot)ula(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con rendimiento..
Date: 2007-02-23 19:22:00
Message-ID: 2065a6cf0702231122j55af1bc2i74e208336c6bd301@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 23/02/07, Leonardo Castillo <leonardo(at)hacer(dot)ula(dot)ve> wrote:
>
> "Unique (cost=59712.53..59712.55 rows=1 width=43) (actual

Esta bien "cochina" tu consulta, y en realidad creo que en realidad
se demora poco si tienes en cuenta lo que hace el pobre planificador.

)"
> " Hash Cond: (ctt.cod_titulo = tit.cod_titulo)"
> " -> Seq Scan on codtit ctt (cost=0.00..22194.38
> rows=521747 width=29) (actual time=13.744..6075.327 rows=523797 loops=1)"
> " Filter: ((portada)::text = '1'::text)"

Esos (Seq Scan) de alguna forma debes evitarlos porque al ser
secuenciales haces que se deba recorrer toda la lista de registros uno
por uno.

> " Index Cond: (ct04.cod_desc = de04.codesc)"
> " Filter: (((tipo)::text = 'EOPN'::text) AND
> (((descriptor)::text <> 'VALIDADO'::text) OR ((tipo)::text <> 'EOPN'::text)))"
> "Total runtime: 49818.338 ms"
>

me fije ademas que tienes varias comparaciones de texto, como por
ejemplo arriba dices buscar la palabra 'VALIDADO'. Eso lo puedes
evitar creando una tabla con 2 campos al menos, uno de tipo texto y
otro entero, luego haces referencia en las tablas que sean necesarios
para luego buscar por el numero indexado en vez del texto, el cual se
puede indexar pero no te dara el rendimiento que quieres obtener.

>

--
http://www.advogato.org/person/mgonzalez/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Henry 2007-02-23 19:26:51 Re: CALCULO DE HORAS AL DIA
Previous Message Henry 2007-02-23 18:53:01 Re: CALCULO DE HORAS AL DIA