Re: Consulta toma 100 Minutos!!??

From: William Diaz Pabón <wdiaz(at)unipamplona(dot)edu(dot)co>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta toma 100 Minutos!!??
Date: 2005-09-08 13:05:54
Message-ID: 48796.201.245.175.175.1126184754.squirrel@correo.unipamplona.edu.co
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenos dias.

No soy un experto en SQL pero mire si le sirve esta consulta, debe mejorar
su rendimiento.

SELECT "Rut Cliente"
FROM "Internet_Abril"
WHERE "Rut Cliente" NOT IN (SELECT "Rut Cliente" FROM "Internet_Enero")
and
"Rut Cliente" NOT IN (SELECT "Rut Cliente" FROM
"Internet_Febrero") and
"Rut Cliente" NOT IN (SELECT "Rut Cliente" FROM "Internet_Marzo")

> Hola
>
> Soy nuevo en postgresql, tuve que instalarlo porque Access no fue
> capaz de soportar las consultas, instalé postgres en una maquina con
> Windows XP ( No puedo usar linux, porque es el computador del trabajo
> ),
>
> Estoy realizando una consulta, y toma mucho tiempo en realizarse, como
> 100 minutos en un P4 de 2.8Ghz 512Mb RAM, la consulta es la siguiente:
>
> SELECT "Rut Cliente"
> FROM "Internet_Abril"
> WHERE "Rut Cliente" NOT IN ((SELECT "Rut Cliente" FROM
> "Internet_Enero") UNION (SELECT "Rut Cliente" FROM
> "Internet_Febrero") UNION (SELECT "Rut Cliente" FROM
> "Internet_Marzo"));
>
> Todas las tablas tienen indices creados( Rut Cliente es VarChar ), y
> las tablas tienen 50.000 registros en promedio.
>
> El explain de la consulta arroja lo siguiente.
>
> "QUERY PLAN
> Seq Scan on "Internet_Abril" (cost=19406.67..62126112.70 rows=24731
> width=13)
> Filter: (NOT (subplan))
> SubPlan
> -> Materialize (cost=19406.67..21576.07 rows=136740 width=13)
> -> Unique (cost=17784.23..18467.93 rows=136740 width=13)
> -> Sort (cost=17784.23..18126.08 rows=136740 width=13)
> Sort
> Key: "Rut Cliente"
> -> Append (cost=0.00..3741.80 rows=136740 width=13)
> -> Subquery Scan "*SELECT* 1" (cost=0.00..1233.38
> rows=45069 width=13)
> -> Seq Scan on "Internet_Enero" (cost=0.00..782.69
> rows=45069 width=13)
> -> Subquery Scan "*SELECT* 2" (cost=0.00..1104.06
> rows=40353 width=13)
> -> Seq Scan on "Internet_Febrero" (cost=0.00..700.53
> rows=40353 width=13)
> -> Subquery Scan "*SELECT* 3" (cost=0.00..1404.36
> rows=51318 width=13)
> -> Seq Scan on "Internet_Marzo" (cost=0.00..891.18
> rows=51318 width=13)
>
> Cualquier ayuda se agradece, tengo que hacer 30 consultas similiares
> para obtener los datos para mi tesis.
>
> saludos
> Christian
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
> (envíe "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
>

Cordialmente.

William Diaz Pabón
Arqitectura
Plataforma - Universidad de Pamplona.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message al979663 2005-09-08 15:55:02 Re: Error al grabar registros en PG con VB
Previous Message Alvaro Herrera 2005-09-08 01:29:30 Re: auditar un servidor de bases de datos