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

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a