Buenos días, se que ya hubieron muchas preguntas al respecto pero este caso
me llama la atención y los molesto consultando.
Tengo la siguiente query:
explain
select *
from
nacer.historicotemp h
inner join nacer.smiafiliados s on
h.clavebeneficiario = s.clavebeneficiario;

Con siguiente resultado

"Hash Join  (cost=33335.39..1817942.71 rows=5692774 width=1002)"
"  Hash Cond: ((h.clavebeneficiario)::text = (s.clavebeneficiario)::text)"
"  ->  Seq Scan on historicotemp h  (cost=0.00..578624.74 rows=5692774
width=762)"
"  ->  Hash  (cost=15677.73..15677.73 rows=394773 width=240)"
"        ->  Seq Scan on smiafiliados s  (cost=0.00..15677.73 rows=394773
width=240)"

Ambas tablas tienen indexada la columna clavebeneficiario y como ven ambas
tablas creo que son lo suficientemente grande para la prueba.
(La tabla h tiene mas de 5 millones de registros y la tabla s tiene unos
400 mil registros)
Yo esperaba que al join lo haga utilizando índices, sin embargo veo que el
planificador no lo usa, ¿Tienen idea por qué?
Desde ya muchas gracias

Guillermo Villanueva

Responder a