Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Dudas con optimizacion de consultas ente varias Tablas

Estas en el tema de Dudas con optimizacion de consultas ente varias Tablas en el foro de Bases de Datos General en Foros del Web. Hola Gente estoy optimizando un reporte que hice hace rato pero esta muy lento y es por las consultas. Intervienen tres Tablas: Despacho, Usuario, Cuentas* ...
  #1 (permalink)  
Antiguo 23/05/2011, 13:01
 
Fecha de Ingreso: junio-2010
Ubicación: Puebla, Pue.
Mensajes: 70
Antigüedad: 14 años, 5 meses
Puntos: 1
Dudas con optimizacion de consultas ente varias Tablas

Hola Gente estoy optimizando un reporte que hice hace rato pero esta muy lento y es por las consultas.

Intervienen tres Tablas: Despacho, Usuario, Cuentas*
(Un usuario tiene varias cuentas, calificadas con elgun estatus.)

TDespacho:

ID Ciudad

1----DF
2----PUE
3----GDL
TUsuario:


ID_usar IdDesp Usuario

1---------1--------Juan
2---------1--------Luis
3---------1--------Pedro
4---------2--------Oscar
5---------2--------Liz
6---------2--------Jose
7---------3--------Maria
TCuenta:

ID_Cta Estatus Usuario
101-----Nueva--------5
102-----Trabajada----2
103-----Trabajada----7
104-----Calificada----5
105-----Calificada----5
106----- Nueva-------1
107-----Trabajada----3
108-----Nueva--------1
109-----Trabajada----3
110-----Otra-----------7
etc, etc, etc...



Lo que hace mi reporte es Mostrar todas las diferentes cuentas de cada usuario, y estos usuario agrupados a su vez por despacho:

DF
Juan: Nuevas 20; Trabajada 20; Calificada 5; Otras 5; Total:50
Luis:Nuevas 10; Trabajada 30; Calificada 7; Otras 3; Total:50
Pedro:Nuevas 35; Trabajada 10; Calificada 5; Total:50
PUE
Oscar: Nuevas 35; Trabajada 15; Total:50
Liz:Nuevas 10; Trabajada 15; Calificada 5; Otras 20; Total:50
Jose:Nuevas 50; Total:50
GDL
Maria: Nuevas 8; Trabajada 22; Calificada 15; Otras 5; Total:50
Y para hacer esto desde PHP ejecuto:
1 Una consulta para traer los despachos
2 Obtengo lo usaurios de cada despacho
2.1 Por cada usuario hago una consulta para obtener sus cuentas asiganadas, las agrupo por estatus (Esta es la consulta que me hace lento el reporte)
No se exactamente como optimizar estas consultas, estoy intentando anidarlas en una sola pero es imposible traer todos los usaurios y sus cuentas agrupadas por estatus...

Para este tipo de casos que es mas recomendable hacer?

* Hacer una compleja consulta, con anidaciones y condiciones, etc etc etc
* Usar vistas y/o store procedures
* Seguir con cada consulta, y en cada registro devuelto ejecutar la siguiente y así??
?

Se que es larga la pregunta, ojala puedan aconsejarme.

De antemano gracias y saludos.

Etiquetas: dudas, ente, tablas, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:54.