Korzystanie ze zmiennych lokalnych filtr WHERE powoduje PEŁNE SKANOWANIE TABELI. Ponieważ SS nie zna wartości zmiennych lokalnych w czasie kompilacji. Tworzy więc plan wykonania w największej skali, która może być dostępna dla kolumny.
Aby zapobiec problemom z wydajnością, SS musi znać wartości zmiennych w czasie kompilacji. Definiowanie SP i przekazywanie tych zmiennych lokalnych jako parametru jest jednym z rozwiązań problemu. Innym rozwiązaniem jest użycie sp_executesql i ponownie przekazując te zmienne lokalne jako parametr...
Możesz też dodać OPCJA (REKOMPILUJ) na końcu instrukcji sql, aby skompilować lokalne zmienne. To rozwiąże problem wydajności.