Muchas gracias por tu aporte Gerardo, mi pregunta apuntaba mas a la condición de reunión, cuando son varias columnas las que intervienen en la reunión , se puede armar algún índice? Veo que el planificador hace un sort previo.
Guillermo Villanueva El 9 de mayo de 2015, 14:46, Gerardo Herzig <gher...@fmed.uba.ar> escribió: > > > ----- Mensaje original ----- > > De: "Guillermo E. Villanueva" <guillermo...@gmail.com> > > Para: "gilberto castillo" <gilberto.casti...@etecsa.cu> > > CC: "pgsql-es-ayuda" <pgsql-es-ayuda@postgresql.org> > > Enviados: Viernes, 8 de Mayo 2015 8:24:20 > > Asunto: Re: [pgsql-es-ayuda] Ayuda para optimizar consulta > > > > > > Buenos días, les cuento que hice varias pruebas, entre ellas crear un > > índice en ambas tablas del join con las columnas: > > > > > > > > uploaddet_importcomp > > > > > > > > * fil_ clasedoc > > * fil_ tipodoc > > * fil_ nrodoc > > * fil_ nacim > > > > > > > > > > > > > > historicotemp > > > > > > * aficlasedoc > > * historicotemp.afitipodoc > > * historicotemp.afidni > > * historicotemp.afifechanac > > > > > > > > > > > > También probé haciéndo un índice con las columnas concatenadas, de > > todas maneras el planificador siempre decía que iba a hacer un seq > > scan y un sort por esos campos. Solo fue un poco mas rápido cuando > > cambié de left a inner así que tuve que cambiar la lógica de la > > aplicación. > > Una pregunta concreta, ¿hay algún índice que se pueda crear con estas > > columnas para que el planificador lo aproveche y mejore la > > performance? > > > > > No necesariamente. Si el "where" de la consulta devuelve una parte > significativa de la tabla, entonces seguramente el planificador decidira > que es mas performante leer directamente (de manera secuencial) de la > tabla, para luego aplicarle un filtro. > > Para corroborar las velocidades "secuencial vs index", intenta leer sobre > estas variables: > set enable_indexscan > set enable_bitmapscan > set enable_seqscan > > Para que puedas comprobar empiricamente las alternativas del planificador. > > Saludos, > Gerardo >