Karena komentar saya tampaknya memberikan jawaban yang benar, saya memutuskan untuk mengubahnya menjadi jawaban lengkap untuk anak cucu dalam semangat stackoverflow.
Masalah Anda tampaknya disebabkan oleh Parameter Sniffing" dari SQL Server .Untuk mencegahnya, cukup tetapkan nilai parameter masuk Anda ke variabel lain yang dideklarasikan tepat di bagian atas SP Anda.
Lihat Artikel bagus tentang ini
Contoh:
CREATE PROCEDURE dbo.MyProcedure
(
@Param1 INT
)
AS
declare @MyParam1 INT
set @MyParam1 = @Param1
SELECT * FROM dbo.MyTable WHERE ColumnName = @MyParam1
GO
Saya menyalin informasi ini dari eggheadcafe.com .
Sunting:Sesuai komentar Johann Strydom, berikut adalah opsi lain:Mengoptimalkan Kueri Berbasis Parameter dengan SQL Server OPTIMIZE FOR Hint .