Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/10/2018, 08:37
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Performance Fecha Where Between vs Equal

Código SQL:
Ver original
  1. SELECT L.numero, L.tarifa, CONVERT(DATETIME,CONVERT(VARCHAR(10), L.fechahora, 121),121) AS fechahora, MAX(L.Potencia) AS Potencia
  2.             FROM    Lector L WITH(NOLOCK)
  3.             WHERE   CONVERT(DATETIME,CONVERT(VARCHAR(10),FechaHoraIncorporacion, 121), 121) BETWEEN
  4.                     CONVERT(DATETIME,CONVERT(VARCHAR(10), '''+@fechaDesde+''', 121), 121) AND
  5.                     CONVERT(DATETIME,CONVERT(VARCHAR(10), '''+@fechaHasta+''', 121), 121)
  6. GROUP BY    L.numero, L.tarifa, CONVERT(DATETIME,CONVERT(VARCHAR(10), L.FechaHora, 121),121)

Las conversiones que haces en el where afectan el rendimiento de esta consulta ya que al hacer el convert ya no usa los indices de la tabla


Haces un:

Código SQL:
Ver original
  1. CROSS APPLY dbo.f_fecha_max_potencia(CONVERT(DATETIME,CONVERT(VARCHAR(10), P.fechahora, 121),121)

Eso indica que por cada valor de la tabla va a mandar llamar a la funcion, ahora tienes un cursor, ese para que es?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me