Ich habe in der Vergangenheit zwei Methoden verwendet, um Probleme mit dem Parameter-Sniffing zu umgehen:
1) Verwenden Sie WITH RECOMPILE
2) Weisen Sie den lokalen Variablen Parameterwerte neu zu und verwenden Sie diese anstelle der Parameter
Soweit ich weiß, ist das Endergebnis von beiden dasselbe - ein neuer Ausführungsplan, der für die aktuelle Abfrage / Parameter optimiert ist, wird erstellt und verwendet.
Wenn dies zutrifft, gibt es Unterschiede zwischen diesen beiden Methoden oder sind sie im Wesentlichen gleich? Ist einer dem anderen vorzuziehen?