el proeblema no es (estado)::text = 'ACTIVO'::text), es Hash Cond: ((cpp.caracteristica_predio)::text = (cpt.caracteristica_predio)::text)
http://explain.depesz.com/s/1GRQ El 14 de marzo de 2014, 11:04, William Diaz Pabón <wid...@gmail.com>escribió: > Hash Join (cost=62.82..2455.25 rows=102826 width=11) (actual time= > 6.006..186.428 rows=100738 loops=1) > Output: t.consecutivo, cpp.oi_predio > Hash Cond: ((cpp.caracteristica_predio)::text = > (cpt.caracteristica_predio)::text) > Join Filter: (((cpp.vigencia)::text = ''::text) OR (cpp.vigencia IS > NULL) OR ((cpp.vigencia)::text = (t.vigencia)::text)) > -> Seq Scan on caracteristica_predio_oi_predio cpp (cost=0.00..162.44 > rows=8595 width=29) (actual time=0.019..12.759 rows=8595 loops=1) > Output: cpp.consecutivo, cpp.caracteristica_predio, cpp.oi_predio, > cpp.vigencia, cpp.estado > Filter: ((estado)::text = 'ACTIVO'::text) > -> Hash (cost=59.97..59.97 rows=228 width=13) (actual > time=5.970..5.970 rows=228 loops=1) > Output: t.consecutivo, t.vigencia, cpt.caracteristica_predio > -> Hash Join (cost=7.13..59.97 rows=228 width=13) (actual > time=0.755..5.571 rows=228 loops=1) > Output: t.consecutivo, t.vigencia, cpt.caracteristica_predio > Hash Cond: ((t.consecutivo)::text = (cpt.tarifa)::text) > -> Seq Scan on tarifa t (cost=0.00..44.66 rows=1573 > width=10) (actual time=0.006..2.402 rows=1573 loops=1) > Output: t.consecutivo, t.avaluo_inicial, > t.avaluo_final, t.destino_economico, t.tipo_predio, t.tarifa, t.estado, > t.area_construida_inicial, t.area_construida_final, t.area_terreno_inicial, > t.area_terreno_final, t.estrato, t.tipo, t.fecha_cambio, t.registrado_por, > t.fecha_creacion, t.usuario_creacion, t.vigencia, > t.porcentaje_limite_incremento, t.uso_predio > Filter: ((estado)::text = 'ACTIVO'::text) > -> Hash (cost=4.28..4.28 rows=228 width=8) (actual > time=0.691..0.691 rows=228 loops=1) > Output: cpt.tarifa, cpt.caracteristica_predio > -> Seq Scan on caracteristica_predio_tarifa cpt > (cost=0.00..4.28 rows=228 width=8) (actual time=0.008..0.306 rows=228 > loops=1) > Output: cpt.tarifa, cpt.caracteristica_predio > Total runtime: 308.551 ms > > > > El 14 de marzo de 2014, 11:02, Alvaro Herrera > <alvhe...@2ndquadrant.com>escribió: > > William Diaz Pabón escribió: >> > Ok, gracias. >> > >> > Esta es la consulta con alias, espero que sea más legible: >> > >> > >> > SELECT >> > t.consecutivo AS tarifa, >> > cpp.oi_predio >> > FROM tarifa AS t >> > JOIN caracteristica_predio_tarifa AS cpt ON cpt.tarifa::text = >> > t.consecutivo::text >> > >> > JOIN caracteristica_predio_oi_predio AS cpp ON >> > cpp.caracteristica_predio::text = cpt.caracteristica_predio::text >> > AND cpp.estado::text = 'ACTIVO'::text >> > AND (cpp.vigencia::text = ''::text OR >> > cpp.vigencia IS NULL OR >> > cpp.vigencia::text = t.vigencia::text) >> > WHERE t.estado::text = 'ACTIVO'::text >> >> Sí, es mucho más legible. ¿Puedes mandar un EXPLAIN ANALYZE de la >> consulta? >> >> -- >> Álvaro Herrera http://www.2ndQuadrant.com/ >> PostgreSQL Development, 24x7 Support, Training & Services >> > > > > -- > Éxitos. > > Cordialmente, > > > *William Diaz Pabón* > > *, Especialista en Soluciones Informáticas* > > Bogotá, Colombia > Tel: +57 (300) 3917774 > > http://planetapleno.blogspot.com/ > http://tutorialestecnicos.blogspot.com/ > -- Raul Andres Gutierrez Alejo