加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 与从Management Studio中的文本执行的相同查询相

发布时间:2020-12-12 06:53:30 所属栏目:MsSql教程 来源:网络整理
导读:所以这里有点奇怪…… 我有一个存储过程需要40秒才能运行. 我将存储过程的内容复制到一个新的查询窗口,更改2个输入参数(这两个日期),以便声明和设置它们,然后运行查询.它基本上是即时的,低于1秒执行. 唯一的区别是存储过程将2个日期作为参数. 任何人都知道是
所以这里有点奇怪……
我有一个存储过程需要40秒才能运行.
我将存储过程的内容复制到一个新的查询窗口,更改2个输入参数(这两个日期),以便声明和设置它们,然后运行查询.它基本上是即时的,低于1秒执行.
唯一的区别是存储过程将2个日期作为参数.

任何人都知道是什么让这种情况发生的?

(我正在运行SQL Server 2005)

解决方法

重新编译会嗅探参数,因此它没有任何区别.

This article explains my statement …

…parameter values are sniffed during
compilation or recompilation…

您需要屏蔽参数:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读