From: | William Diaz Pabón <widipa(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Español Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Consulta no usa los indices |
Date: | 2014-03-14 15:29:49 |
Message-ID: | CAGrLqMbcBGUV7Y6RgDD4K4uGWs+m=BY0qLSqXBjYyXrbdhKk4g@mail.gmail.com |
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?
--
É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 | Alvaro Herrera | 2014-03-14 15:38:22 | Re: Consulta no usa los indices |
Previous Message | Anthony Rafael Sotolongo León | 2014-03-13 20:24:33 | Re: Fwd: Ubicar los tipos de datos creados |