Re: Consulta no usa los indices

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/

In response to

Responses

Browse pgsql-es-ayuda by date

  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