sql >> Base de Datos >  >> RDS >> Sqlserver

Rendimiento de la subconsulta de la cláusula WHERE-CASE

Creo que, en teoría, la solución puede ayudarlo a aumentar el rendimiento, pero también depende de lo que realmente haga la función escalar. Creo que en este caso (supongo que formatear la fecha al último día del trimestre) sería realmente insignificante.

Es posible que desee leer esta página con soluciones alternativas sugeridas:

http://connect.microsoft.com/SQLServer/feedback/details/273443/the-scalar-expression-function-would-speed-performance-while-keeping-the-benefits-of- funciones#

Y en Soluciones provisionales, hay un comentario que

Entonces parece que sí, esto puede aumentar el rendimiento.

Su solución es correcta, pero recomendaría considerar una mejora del SQL para usar ELSE en su lugar, me parece más limpio:

AND ReportTypeID = CASE WHEN (@X = 1) THEN  1 
                    ELSE 4
                    END;