Re: Consulta no usa los indices

From: "Gilberto Castillo" <gilberto(dot)castillo(at)etecsa(dot)cu>
To: William Diaz Pabón <widipa(at)gmail(dot)com>
Cc: PostgreSQL Español Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Consulta no usa los indices
Date: 2014-03-14 16:33:31
Message-ID: 52572.192.168.207.54.1394814811.squirrel@webmail.etecsa.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> Hola lista.
>
> Tengo la siguiente consulta:
>
> 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
>
>
> Y a las tablas le cree los siguientes indices:
>
> CREATE INDEX tarifa_estado_ix
> ON tarifa USING btree (estado ASC NULLS LAST);
>
> CREATE INDEX caracteristica_predio_oi_predio_estado_ix
> ON caracteristica_predio_oi_predio USING btree (estado ASC NULLS LAST);
>
> CREATE INDEX caracteristica_predio_oi_predio_caracteristica_predio_ix
> ON caracteristica_predio_oi_predio USING btree (caracteristica_predio
> ASC NULLS LAST);
>
> CREATE INDEX caracteristica_predio_oi_predio_vigencia_ix
> ON caracteristica_predio_oi_predio USING btree (vigencia ASC NULLS
> LAST);
>
> CREATE INDEX caracteristica_predio_oi_predio_vigencia_estado_ix
> ON caracteristica_predio_oi_predio USING btree (vigencia, estado);
>
>
> Pero haciendo un explain no los toma:
>
> "Hash Join (cost=62.82..2455.25 rows=102826 width=11)"
> " Output: tarifa.consecutivo, caracteristica_predio_oi_predio.oi_predio"
> " Hash Cond:
> ((caracteristica_predio_oi_predio.caracteristica_predio)::text =
> (caracteristica_predio_tarifa.caracteristica_predio)::text)"
> " Join Filter: (((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))"
> " -> Seq Scan on caracteristica_predio_oi_predio (cost=0.00..162.44
> rows=8595 width=29)"
> " Output: caracteristica_predio_oi_predio.consecutivo,
> caracteristica_predio_oi_predio.caracteristica_predio,
> caracteristica_predio_oi_predio.oi_predio,
> caracteristica_predio_oi_predio.vigencia,
> caracteristica_predio_oi_predio.estado"
> " Filter: ((estado)::text = 'ACTIVO'::text)"
> " -> Hash (cost=59.97..59.97 rows=228 width=13)"
> " Output: tarifa.consecutivo, tarifa.vigencia,
> caracteristica_predio_tarifa.caracteristica_predio"
> " -> Hash Join (cost=7.13..59.97 rows=228 width=13)"
> " Output: tarifa.consecutivo, tarifa.vigencia,
> caracteristica_predio_tarifa.caracteristica_predio"
> " Hash Cond: ((tarifa.consecutivo)::text =
> (caracteristica_predio_tarifa.tarifa)::text)"
> " -> Seq Scan on tarifa (cost=0.00..44.66 rows=1573
> width=10)"
> " Output: tarifa.consecutivo, tarifa.avaluo_inicial,
> tarifa.avaluo_final, tarifa.destino_economico, tarifa.tipo_predio,
> tarifa.tarifa, tarifa.estado, tarifa.area_construida_inicial,
> tarifa.area_construida_final, tarifa.area_terreno_inicial,
> tarifa.area_terreno_final, tarifa.estrato, tarifa.tipo,
> tarifa.fecha_cambio, tarifa.registrado_por, tarifa.fecha_creacion,
> tarifa.usuario_creacion, tarifa.vigencia,
> tarifa.porcentaje_limite_incremento, tarifa.uso_predio"
> " Filter: ((estado)::text = 'ACTIVO'::text)"
> " -> Hash (cost=4.28..4.28 rows=228 width=8)"
> " Output: caracteristica_predio_tarifa.tarifa,
> caracteristica_predio_tarifa.caracteristica_predio"
> " -> Seq Scan on caracteristica_predio_tarifa
> (cost=0.00..4.28 rows=228 width=8)"
> " Output: caracteristica_predio_tarifa.tarifa,
> caracteristica_predio_tarifa.caracteristica_predio"
>
>
> Que puedo hacer para que la consulta sea más rápida?

Varias cosas, solo necesitamos más detalles de tu problema para poder
ayudarte.

Saludos,
Gilberto Castillo
La Habana, Cuba

Attachment Content-Type Size
unknown_filename text/plain 179 bytes
unknown_filename text/plain 157 bytes

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message William Diaz Pabón 2014-03-14 16:48:07 Re: Fwd: Consulta no usa los indices
Previous Message Alvaro Herrera 2014-03-14 16:29:50 Re: Fwd: Consulta no usa los indices