From: | William Diaz Pabón <widipa(at)gmail(dot)com> |
---|---|
To: | |
Cc: | PostgreSQL Español Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta no usa los indices |
Date: | 2014-03-14 15:45:47 |
Message-ID: | CAGrLqMZpz7GYK1vmVGoHP-MKdhfY9yuzmJaYyU0xHT=3gF0eDQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
El problema es que al ejecutar la consulta de demora mucho, y le pude los
indices que indique en el correo anterior, pero haciendo un explain no los
esta tomando y no se porque.
Para la pregunta de Alvaro: Me imagino que la mayoría de los predios están
en estado ACTIVO, ¿es así?
Pueden haber registros activos e inactivos, pero la gran mayoría debería
ser activos.
El 14 de marzo de 2014, 10:38, Alvaro Herrera
<alvherre(at)2ndquadrant(dot)com>escribió:
> William Diaz Pabón escribió:
>
> > SELECT
> > tarifa.consecutivo AS tarifa,
> > caracteristica_predio_oi_predio.oi_predio
> > FROM tarifa
> > JOIN caracteristica_predio_tarifa ON
> > caracteristica_predio_tarifa.tarifa::text = tarifa.consecutivo::text
> >
> > JOIN caracteristica_predio_oi_predio ON
> > caracteristica_predio_oi_predio.caracteristica_predio::text =
> > caracteristica_predio_tarifa.caracteristica_predio::text
> > AND caracteristica_predio_oi_predio.estado::text = 'ACTIVO'::text
> > AND (caracteristica_predio_oi_predio.vigencia::text = ''::text OR
> > caracteristica_predio_oi_predio.vigencia IS NULL OR
> > caracteristica_predio_oi_predio.vigencia::text = tarifa.vigencia::text)
> >
> > WHERE tarifa.estado::text = 'ACTIVO'::text
>
> Me imagino que la mayoría de los predios están en estado ACTIVO, ¿es
> así?
>
> PD: usa aliases en la cláusula FROM para que tus consultas sean más
> legibles.
> "FROM tarifa AS t JOIN ..."
> En la ensalada de letras de arriba es difícil hasta saber cuántas tablas
> están involucradas.
>
> --
> Á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/
From | Date | Subject | |
---|---|---|---|
Next Message | raul andrez gutierrez alejo | 2014-03-14 15:50:10 | Re: Consulta no usa los indices |
Previous Message | Alvaro Herrera | 2014-03-14 15:38:22 | Re: Consulta no usa los indices |