Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/03/2017, 13:15
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Mejorar el rendimiento del Stored

Para empezar quita el cursor, ahi estas matando el performance, tu proceso puede salir en un solo query, seria algo como esto:


Código SQL:
Ver original
  1. SELECT t1.Nombre, t2.Descripcion, completa.faltas, completa.mes, completa.YEAR FROM usuario AS U
  2. LEFT JOIN (
  3. --Con esto sacamos cuantas veces falto el usuario por mes y año
  4. SELECT COUNT(*) AS faltas, usuario_id, mes, YEAR FROM(
  5. SELECT Usuario_Id, datepart(mm,Fecha) AS mes, datepart(yyyy, fecha) AS YEAR FROM ausencia) AS t1 GROUP BY mes,YEAR, usuario_id) AS completa ON (U.id=completa.usuario_id)
  6. LEFT JOIN area AS t2 ON (t1.area_id=t2.id)
  7. WHERE t2.descripcion='parametro' AND completa.YEAR=parametro

Ojo, este query sacaria los datos de las meses y años donde hay ausencias, si quieres el listado completo por año y los 12 meses haya o no ausencias, ps bueno esa es otra historia :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me