Skip site navigation (1) Skip section navigation (2)

Re: Ayuda con Explain de consulta

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>
Cc: PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con Explain de consulta
Date: 2007-05-29 16:07:43
Message-ID: 20070529160743.GE4667@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Luis Guevara escribió:
> Las tablas si tienen los índices en sus respectivos PK y FK

Ok

> ¿ Alguien puede traducirme este explain ?

El explain se lee "de adentro hacia afuera".  Primero (es decir lo mas
adentro) hay un index scan en la tabla planilla_empleado, obteniendo
todas las tuplas que cumplen con la condicion de indice plan_id=388.
Eso se calcula todo y se mete en un hash.  Luego se hace un recorrido
secuencial de la tabla planilla_empleado_movimiento (completa!) y para
cada registro de ese recorrido, se obtiene la tupla correspondiente del
hash que se habia creado.  Esas dos tuplas se "juntan" (usando la
condicion de join que es a.plem_id = b.plem_id) y se entregan como
resultado.

> ¿cuál es la solución?

La solucion -- ¿a que problema?  Aca lo que veo es que tu consulta
entrega un resultado muy grande, de 140 mil registros.  Un plan
alternativo seria un nestloop con dos indexscans, pero como los
resultados son tantos es posible que salga mas lento.

A guisa de experimento, prueba haciendo un
SET enable_seqscan to OFF;
y luego repite el explain, a ver si el plan es diferente.


Otra idea seria reformular tu consulta de manera que no entregue 140000
registros como resultado ... realmente necesitas tantos?

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

pgsql-es-ayuda by date

Next:From: Ricardo Martin GomezDate: 2007-05-29 16:10:47
Subject: RE: Ayuda con Funcion como procedimiento
Previous:From: Gunnar WolfDate: 2007-05-29 16:04:20
Subject: Re: RECUPERANDO MIS BASES DE DATOS

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group