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

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

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