Consulta ejecutándose por más tiempo agregando condiciones WHERE no utilizadas

He golpeado un obstáculo interesante (interesante para mí al menos). A continuación se muestra una idea general de cómo se ve mi consulta. Suponga que @AuthorType es una entrada para el procedimiento almacenado y que hay varias condiciones especializadas en cada lugar donde he puesto comentarios.

SELECT *
FROM TBooks
WHERE
(--...SOME CONDITIONS)
OR
(@AuthorType = 1 AND --...DIFFERENT CONDITIONS)
OR
(@AuthorType = 2 AND --...STILL MORE CONDITIONS)

Lo que me interesa es que si ejecuto este SP con @AuthorType = 0, se ejecuta más lentamente que si elimino los dos últimos conjuntos de condiciones (los que agregan condiciones para los valores especializados de @AuthorType).

¿No debería SQL Server darse cuenta en el tiempo de ejecución de que esas condiciones nunca se cumplirán e ignorarlas por completo? La diferencia que estoy experimentando no es pequeña; es aproximadamente el doble de la duración de la consulta (1-2 segundos a 3-5 segundos).

¿Espero que SQL Server optimice esto demasiado para mí? ¿Realmente necesito tener 3 SP separados para condiciones especializadas?

Respuestas a la pregunta(3)

Su respuesta a la pregunta