Как условные операторы (например, IF ... ELSE ) влияют на план выполнения запросов в SQL Server (2005 и выше)?
Могут ли условные операторы вызывать плохие планы выполнения, и существует ли какая-либо форма условных выражений, с которой вам следует опасаться при рассмотрении производительности?
** Отредактировано, чтобы добавить **:
Я конкретно имею в виду план выполнения кэшированных запросов. Например, при кэшировании плана выполнения запроса в приведенном ниже примере кэшируются ли два плана выполнения для каждого из результатов условного запроса?
DECLARE @condition BIT
IF @condition = 1
BEGIN
SELECT * from ...
END
ELSE
BEGIN
SELECT * from ..
END