Re: Busqueda de duplicados, con demora. SOLUCION

From: Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Oswaldo Hernández <listas(at)soft-com(dot)es>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Busqueda de duplicados, con demora. SOLUCION
Date: 2007-06-04 22:44:09
Message-ID: 419330.39915.qm@web63708.mail.re1.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


--- Alvaro Herrera <alvherre(at)commandprompt(dot)com>
escribió:

> Gabriel Hermes Colina Zambra escribió:
>
> > Si de algo te sirve te tiro el explain de la
> consulta
> > que en PostgreSql no camina, lamento mucho mi
> > ignorancia para interpretarlo para sacar
> conclusiones
> > utiles.
> >
> > explain
> > SELECT central.articulo_proveedor.id_articulo,
> > central.articulo_proveedor.id_proveedor,
> > central.articulo_proveedor.id_en_proveedor,
> > central.articulo_proveedor.dto1,
> > central.articulo_proveedor.dto2,
> > central.articulo_proveedor.unidades_x_envase,
> > central.articulo_proveedor.id_imagen INTO
> dupartprov
> > FROM central.articulo_proveedor
> > WHERE central.articulo_proveedor.id_articulo In
> > (SELECT id_articulo FROM
> central.articulo_proveedor As
> > Tmp GROUP BY id_articulo,id_proveedor HAVING
> > Count(*)>1 And id_proveedor =
> > central.articulo_proveedor.id_proveedor)
> > ORDER BY id_articulo, id_proveedor;
>
> Por favor prueba lo siguiente:
>
> explain
> SELECT central.articulo_proveedor.id_articulo,
> central.articulo_proveedor.id_proveedor,
> central.articulo_proveedor.id_en_proveedor,
> central.articulo_proveedor.dto1,
> central.articulo_proveedor.dto2,
> central.articulo_proveedor.unidades_x_envase,
> central.articulo_proveedor.id_imagen INTO
> dupartprov
> FROM central.articulo_proveedor
> WHERE central.articulo_proveedor.id_articulo In
> (SELECT id_articulo FROM central.articulo_proveedor
> As
> Tmp GROUP BY id_articulo,id_proveedor HAVING
> Count(*)>1)
> ORDER BY id_articulo, id_proveedor;
>
> --
> Alvaro Herrera
> http://www.flickr.com/photos/alvherre/
> "I suspect most samba developers are already
> technically insane...
> Of course, since many of them are Australians, you
> can't tell." (L. Torvalds)
>
Alvaro el explain me devolvio esto

QUERY PLAN

------------------------------------------------------------------------------------------------------------------------
Sort (cost=7451.58..7452.08 rows=200 width=86)
Sort Key: articulo_proveedor.id_articulo,
articulo_proveedor.id_proveedor
-> Nested Loop (cost=7368.54..7443.94 rows=200
width=86)
-> HashAggregate (cost=7368.54..7370.54
rows=200 width=29)
-> GroupAggregate (cost=0.00..6589.37
rows=62334 width=21)
Filter: (count(*) > 1)
-> Index Scan using idartprov on
articulo_proveedor tmp (cost=0.00..5186.85 rows=62334
width=21)
-> Index Scan using idartprov on
articulo_proveedor (cost=0.00..0.35 rows=1 width=86)
Index Cond:
((articulo_proveedor.id_articulo)::text =
("IN_subquery".id_articulo)::text)
(9 filas)

Pero lo que no entiendo es que sin el, me devuelve 0
filas.
Lo hace rapidisimo eso si.

Creo que la clave es resolver el In, parece mejor un
left join.

Atte.
Gabriel Hermes Colina Zambra

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message samuel Gonzalez 2007-06-05 01:24:14 Sobre redundancia en Postgres.
Previous Message Alvaro Herrera 2007-06-04 20:36:45 Re: datos de excel a potsgres