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




 
                                          
_________________________________________________________________

Responder a