Hola. Creo que es porque no estas haciendo where de nada, y traer todos los registros equivale a un full scan de las tablas. El may 26, 2014 9:24 AM, "Guillermo E. Villanueva" <guillermo...@gmail.com> escribió:
> 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 > >