Menggunakan variabel lokal di filter WHERE menyebabkan FULL TABLE SCAN. Karena SS tidak mengetahui nilai variabel lokal pada waktu kompilasi. Jadi itu membuat rencana eksekusi untuk skala terbesar yang bisa tersedia untuk kolom.
Untuk mencegah masalah kinerja, SS harus mengetahui nilai variabel pada waktu kompilasi. Mendefinisikan SP, dan melewati variabel lokal ini sebagai parameter merupakan salah satu solusi dari permasalahan tersebut. Solusi lain adalah, menggunakan sp_executesql dan meneruskan variabel lokal itu sebagai parameter lagi...
Atau Anda dapat menambahkan OPSI ( REKOMPILASI ) di akhir pernyataan sql Anda untuk membuat variabel lokal Anda dikompilasi. Ini akan menyelesaikan masalah kinerja.