| From: | Ricardo Martin Gomez <rimartingomez(at)hotmail(dot)com> | 
|---|---|
| To: | Yasset Perez Riverol <yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu>, 'postgre sql' <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | RE: Problema de Performance | 
| Date: | 2008-03-13 11:06:22 | 
| Message-ID: | BAY111-W1338E1F74C3DC07B2ECDE7A3090@phx.gbl | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
Hola Yasset , no estoy seguro de como trabaja postgres en cuanto a los indices, pero creo que una buena opcion para tu consulta sería poner siempre las tabla.columnas claves del lado izquierdo, al menos eso es lo que se recomienda para Or4cl3 y SQ1 S3rver para optimizar el uso de indices.
Entonces tu consulta deberia quedar algo asi.
select tabla1.a, tabla1.b, tabla1.c, tabla2.b 
from tabla1
inner join tabla3 on (tabla1.a = tabla3.a)
inner join tabla2 on (tabla2.a = tabla3.b)
Lamentablemente yo no tengo ninguna tabla tan grande como para probar y asegurartelo pero como el cambio es muy pequeño en tu consulta sería solo cuestión de que lo pruebes.
Espero que te sirva la ayuda
Saludos 
Martin.
> From: yasset(dot)perez(at)biocomp(dot)cigb(dot)edu(dot)cu
> To: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: [pgsql-es-ayuda] Problema de Performance
> Date: Thu, 24 Jan 2008 15:53:30 -0500
> 
> Hola a todos :
>       Estoy Construvyendo una aplicacion en java que se conecta a una base de
>       datos en postgresql, el problema es el siguiente:
>             Mi disehno relacional es este:
>           
>              Tabla 1
>                   atributo a (key)
>                   atributo b
>                   atributo c
> 
>              Tabla 2 
>                  atributo a (key)
>                  atributo b 
>    
>              Table 3
>                  atributo a (forein key the a Tabla 1)
>                  atributo b (Forein Key the a Tabla 2)
> 
> hago un query de la forma 
>  select tabla1.a, tabla1.b, tabla1.c, tabla2.b 
>       from tabla1
>            inner join tabla3 on (tabla1.a = tabla3.a)
>            inner join tabla2 on (tabla3.b = tabla2.a)
> 
> Ahora bien el query se demora alrededor de 10 min porque tengo 5 millones de 
> records en a tabla 1 y 9 millones en la tabla de relacion 3.
> 
> Alguna idea de como bajar este tiempo. (Maquina Dual AMD Athlon 2.4, 3 GB)
> 
> Sldos Yasset
> --
> TIP 2: puedes desuscribirte de todas las listas simultáneamente
>     (envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)
_________________________________________________________________
MSN Noticias
http://noticias.msn.es/comunidad.aspx
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ricardo Martin Gomez | 2008-03-13 11:10:06 | RE: actualizar columna fecha | 
| Previous Message | Ricardo Martin Gomez | 2008-03-13 10:48:09 | CREATE ROLE / USER IF NOT EXISTS |