Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/10/2013, 07:00
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Query execution was interrupted

GROUP BY y ORDER BY son cláusulas asesinas de performance. Son los procesos que más tiempo consumen, en especial si la cantidad de registros es elevada.
Habría que analizar el funcionamiento con EXPLAIN, para ver dónde se puede mejorar, qué indices se pueden crear, y dónde está consumiendo principalmente los recusos.
Esto sería lo que debes correr desde el phpMyadmin (no lo hagas desde PHP), y mostrarnos el resultado compelto de la tabla:
Código MySQL:
Ver original
  1. EXPLAIN SELECT   r0.dni, r2.apellido_nombre, COUNT (r0.dni) Cant_presente,
  2.          r1.teoricas, ((COUNT (r0.dni) * 100) / r1.teoricas) porcentaje,
  3.          r1.actividad, r4.edad
  4.     FROM asistencia r0 INNER JOIN inscripciones r3 ON r3.id_act = r0.id_act
  5.          INNER JOIN actividades r1 ON r1.id_act = r0.id_act
  6.          INNER JOIN alumnos r2 ON r2.dni = r0.dni
  7.          INNER JOIN alumnosedades r4 ON r4.dni = r0.dni
  8.    WHERE r0.dni = r3.dni
  9.      AND r3.id_act = $identificacion_curso
  10.      AND (   r0.asistencia = 'presente'
  11.           OR r0.asistencia = 'P')
  12. GROUP BY r0.dni, r0.id_act
  13.   HAVING r4.edad = 25
  14.      AND porcentaje >= 1
  15. ORDER BY r1.actividad
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)