From: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
---|---|
To: | gilberto(dot)castillo(at)etecsa(dot)cu |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda para optimizar consulta |
Date: | 2015-05-08 11:24:20 |
Message-ID: | CANm+PCBZLwXw03h+7bu3vH2iSVd1+-ky=S4xLG5yR_bdz=Z9Cg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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?
Igual gracias a los que aportaron ideas.
Guillermo Villanueva
El 7 de mayo de 2015, 10:12, Gilberto Castillo <gilberto(dot)castillo(at)etecsa(dot)cu>
escribió:
>
>
> >>
> >> ¿Haces mucho esta comparaciones uploaddet_importcomp.fil_clasedoc =
> >> historicotemp.aficlasedoc?
> >>
> >> Si la respuesta es "SI", crea índice en esos campos
> >>
> > Voy a empezar a hacerlo bastante seguido. Mi duda es: debo crear un
> índice
> > compuesto por todas las columnas que comparo en el join? En ambas tablas?
> > O
> > índices por separado por cada columna?
>
> Has los dos y prueba con cual te va mejor.
>
> >>
> >> ¿Alguna razón para no definir este campo
> >> uploaddet_importcomp.fil_nacim::date como date?
> >>
> > Si, es porque esta tabla es receptor de una importación de datos en la
> que
> > puede venir basura, es para evitar la "caída" del copy.
>
> Supongo que antes de insertar puedas hacer un transformación de datos.
>
>
> >> ¿Es un índice parcial uploaddet_importcomp.estado?
> >>
> > No, no se porque no lo utiliza, quizá porque la proporción de filas que
> > cumplen la condición es tan alta que no tiene sentido ir por el índice.
>
> Comprueba con un count, si es valido quita el índice al final no lo va a
> usar, sino has algo así
>
> create index select uploaddet_importcomp.estado where
> uploaddet_importcomp.estado = 'S' ..... así para todas tus combinaciones.
>
>
> Saludos,
> Gilberto Castillo
> ETECSA, 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>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2015-05-08 14:04:51 | Re: listar llaves foraneas y primarias |
Previous Message | MARIA ANTONIETA RAMIREZ SOLIS | 2015-05-07 22:04:39 | listar llaves foraneas y primarias |