Exec <stored procedure =“”>极慢</stored>

时间:2013-10-17 15:07:01

标签: sql sql-server stored-procedures ssms bids

我有一个非常大的存储过程,只需要一个参数@date。当我突出显示SQL代码并点击执行时,查询将在大约25秒内运行。但是,如果我尝试使用以下命令在单独的窗口中运行存储过程

Exec <Stored Procedure> @date = '2013-10-16'

存储过程大约需要一个半小时才能运行。有关为什么会发生这种情况的任何想法?我也试图通过BIDS来运行它,并且存储过程也需要很长时间才能运行。

注意:当我突出显示要执行的代码时,我使用

Declare @date as date = '2013-10-16'

设置参数。

1 个答案:

答案 0 :(得分:3)

当你说它运行速度很快,如果你声明参数变量并手动运行sql,但是当你通过BIDS运行它需要很长时间我想到参数嗅探。

尝试在SP中声明一个变量,然后你要做的第一件事就是将参数的值赋给这个新的局部变量,然后在SP的每个地方使用局部变量。

了解更多信息:http://blogs.technet.com/b/mdegre/archive/2012/03/19/what-is-parameter-sniffing.aspx