RE: explain sql (never executed)

From: Edwin Perez Lozano <edwinandperez(at)gmail(dot)com>
To: Henry <hensa22(at)yahoo(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: explain sql (never executed)
Date: 2007-10-13 01:36:14
Message-ID: 1192239374.8575.0.camel@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El sáb, 13-10-2007 a las 03:02 +0200, Henry escribió:
> --- Henry <hensa22(at)yahoo(dot)es> escribió:
>
> >
> > --- Edwin Perez Lozano <edwinandperez(at)gmail(dot)com>
> > escribió:
> >
> > > Buen dia.
> > >
> > > Tengo la siguiente consulta:
> > >
> > > explain analyze SELECT g.numero_guia AS
> > > guia_numero_guia,
> > > o.descripcion AS ubicacion_descripcion,
> > > g.fecha_manifiesto AS
> > > guia_fecha_manifiesto,
> > > g.cantidad_piezas AS guia_cantidad_piezas,
> > > c.codigo_concepto AS
> > > concepto_codigo_concepto,
> > > c.concepto AS
> > > concepto_concepto,c.descripcion_concepto AS
> > > concepto_descripcion_concepto,
> > > g.consecutivo_registro AS
> > guia_consecutivo_registro,
> > > d.descripcion AS
> > > ubicacion_A_descripcion
> > > FROM guia g INNER JOIN concepto c ON
> > > c.codigo_concepto=g.codigo_concepto
> > > INNER JOIN ubicacion o ON
> > > o.codigo_ubicacion=g.ciudad_origen
> > > INNER JOIN ubicacion d ON
> > > d.codigo_ubicacion=g.ciudad_destino
> > > WHERE g.fecha_manifiesto = '2007-10-03' and
> > > g.ciudad_origen = 12601 and
> > > g.codigo_concepto= 82
> > > ORDER BY d.descripcion, c.descripcion_concepto,
> > > g.consecutivo_registro
> > > ASC;
> > >
> > > el resultado es el siguiente:
> > >
> > >
> > > QUERY PLAN
> > >
> >
> ---------------------------------------------------------------------------------------------------------------------------------------------------
> > > Sort (cost=2677.10..2679.73 rows=1055 width=71)
> > > (actual
> > > time=1.371..1.371 rows=0 loops=1)
> > > Sort Key: d.descripcion,
> > c.descripcion_concepto,
> > > g.consecutivo_registro
> > > -> Hash Join (cost=26.77..2624.12 rows=1055
> > > width=71) (actual
> > > time=1.282..1.282 rows=0 loops=1)
> > > Hash Cond: (g.ciudad_destino =
> > > d.codigo_ubicacion)
> > > -> Nested Loop (cost=0.00..2582.21
> > > rows=1223 width=62)
> > > (actual time=1.281..1.281 rows=0 loops=1)
> > > -> Nested Loop (cost=0.00..16.55
> > > rows=1 width=46)
> > > (actual time=0.109..0.112 rows=1 loops=1)
> > > -> Index Scan using
> > > pk_concepto on concepto c
> > > (cost=0.00..8.27 rows=1 width=29) (actual
> > > time=0.060..0.061 rows=1
> > > loops=1)
> > > Index Cond: (82 =
> > > codigo_concepto)
> > > -> Index Scan using
> > > pk_ubicacion on ubicacion o
> > > (cost=0.00..8.27 rows=1 width=17) (actual
> > > time=0.043..0.044 rows=1
> > > loops=1)
> > > Index Cond: (12601 => codigo_ubicacion)
> > > -> Index Scan using idx_guia_11 on
> > > guia g
> > > (cost=0.00..2553.44 rows=1223 width=26) (actual
> > > time=1.166..1.166 rows=0
> > > loops=1)
> > > Index Cond: (fecha_manifiesto =
> > > '2007-10-03'::date)
> > > Filter: ((ciudad_origen =
> > > 12601) AND
> > > (codigo_concepto = 82))
> > > -> Hash (cost=18.01..18.01 rows=701
> > > width=17) (never
> > > executed)
> > > -> Seq Scan on ubicacion d
> > > (cost=0.00..18.01 rows=701
> > > width=17) (never executed)
> > > Total runtime: 1.620 ms
> > > (16 filas)
> > >
> > > Pero no entiendo la ultima parte donde realiza un
> > > seq scan y a lo ultimo
> > > indica un never executed, a que se debe eso?? es
> > > porque no es necesario
> > > utilizar el indice (rows=701).?¿
> > >
> > > De antemano gracias por la informacion.
> > >
> >
> > si te das cuenta devuelve 0 filas, y como estas
> > usando
> > un AND, ya no es necesario que ejecute las demas
> > sentencias, por que aun asi las demas filas tengan
> > tenaga alguna coincidencia no te va a devolver
> > ninguna
> > fila la cosulta complete en si.
> >
> > por eso el planeador ya no las tomas en cuenta,
> > seria
> > mal gastos de recursos de CPU en vano.
> >
>
> Index Cond: (12601 = codigo_ubicacion)
> -> Index Scan using idx_guia_11 on
> guia g
> (cost=0.00..2553.44 rows=1223 width=26) (actual
> time=1.166..1.166
> rows=0
> loops=1)
>
> dandole una ojeada al tu explain, aqui esta el asunto,
> devuelve 0 fila,
> aqui no esta cumpliendo la condicion en el Join, por
> eso ya lo que viene despues es en vano, por eso ya no
> es ejecutado

Gracias por el dato.. no habia observado bien el explain...

>
>
>
>
>
> ______________________________________________
> Sé un Mejor Viajero
> ¿Quieres saber cómo? ¡Deja que otras personas te ayuden!
> http://advision.webevents.yahoo.com/reto/viaje.html

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message MIGUEL CANCHAS 2007-10-13 13:10:29 RE: mas de un mismo campo en un select
Previous Message Henry 2007-10-13 01:02:29 RE: explain sql (never executed)