Använda lokala variabler vid WHERE-filtret orsakar FULL TABELL SCAN. Eftersom SS inte känner till värdena för lokala variabler vid kompilering. Så det skapar en utförandeplan för den största skalan som kan vara tillgänglig för kolumnen.
För att förhindra prestandaproblemet måste SS känna till variablernas värden vid kompileringstillfället. Definiera en SP och att skicka dessa lokala variabler som en parameter är en av lösningarna på problemet. En annan lösning är att använda sp_executesql och skicka de lokala variablerna som en parameter igen...
Eller så kan du lägga till ALTERNATIV ( ÅTERKOMPILERA ) i slutet av din sql-sats för att få dina lokala variabler att kompileras. Detta kommer att lösa prestandaproblemet.