> 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
--- 
This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE running at 
host imx3.etecsa.cu
Visit our web-site: <http://www.kaspersky.com>, <http://www.viruslist.com>
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a