Wie werden bedingte Anweisungen (wie IF ... ELSE ) den Abfrageausführungsplan in SQL Server (2005 und höher) beeinflussen?
Können bedingte Anweisungen zu schlechten Ausführungsplänen führen, und gibt es irgendeine Form von bedingten Anweisungen, bei denen Sie im Hinblick auf die Leistung vorsichtig sein müssen?
** Bearbeitet um hinzuzufügen ** :
Ich beziehe mich speziell auf den zwischengespeicherten Abfrageausführungsplan. Werden zum Beispiel beim Zwischenspeichern des Abfrageausführungsplans in der folgenden Instanz zwei Ausführungspläne für jedes Ergebnis der Bedingung zwischengespeichert?
DECLARE @condition BIT
IF @condition = 1
BEGIN
SELECT * from ...
END
ELSE
BEGIN
SELECT * from ..
END