> Date: Thu, 29 Apr 2010 18:21:02 -0400
> From: [email protected]
> To: [email protected]
> CC: [email protected]
> Subject: Re: [pgsql-es-ayuda] FW: Select de 11 horas
>
> Hugo A. Figueroa Solano escribió:
> >
> >
> > Nunca había visto un select tan grande, no me extraña que tarde tanto
>
> A mí sí me extraña. Yo he visto otros más grandes y no tardan tanto.
> ¿Qué porcentaje de la tabla tdata_main tiene fstatus='F' AND
> flead_type='DO'? Si es un porcentaje pequeño quizás puedas agregar
> índices parciales que te ayuden con esta consulta. Pero primero habría
> que saber cómo te va desactivado GEQO (o mejor dicho subiendo el
> threshold como te dijo Jaime)
>
> Lo otro que habría que ver es esa función f_get_initials().
>
> La gran masa de esta consulta es pura palabrería. Hay 326 líneas (163
> si descontamos las líneas en blanco) en la lista de resultados (lo que
> viene antes del FROM), y de esas, sólo dos son interesantes porque
> involucran una subconsulta. Después viene un FROM que tiene 18 tablas,
> algunas con outer join, que no es del otro mundo, y finalmente el WHERE
> no tiene nada de particular.
>
>
Alvaro, se pudo reducir el tiempo a 5seg,obviamente estaba mal hecho,
eliminando un LEFT JOIN por un IN.
Una pregunta:
Si hago un indice de dos campos CREATE INDEX x(f1,f2) al hacer un select si uso
ambos campos separados usara el indice
Es decir
SELECT * FROM foo
WHERE
f1 = 'xxx' AND
f2 = 'yyy'
En este caso se usara el indice creado para los dos o tendria que crear indices
individuales para f1 y para f2 para que funcione ??
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-Soporte PostgreSQL
*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*
_________________________________________________________________