所以这有点奇怪...
我有一个存储过程,需要40秒才能运行。
我将存储的proc的内容复制到新的查询窗口,更改2个输入参数(均为日期),以便对其进行声明和设置,然后运行查询。它基本上是即时的,不到1秒即可执行。
唯一的区别是存储的proc将2个日期作为参数。

任何人都知道怎样才能做到这一点?

(我正在运行SQL Server 2005)

最佳答案

重新编译会嗅探参数,因此不会有任何区别。

This article explains my statement ...



您需要屏蔽参数:

ALTER PROCEDURE [uspFoo]
    @Date1 datetime,
    @Date2 datetime
AS
BEGIN
    DECLARE @IDate1 datetime, @IDate2 datetime;
    SELECT @IDate1 = @Date1, @IDate2 = @Date2;
    -- Stuff here that depends on @IDate1 and @IDate2
END

10-08 09:31
查看更多