Re: Ayuda para optimizar consulta

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>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  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