sql server存储过程超时和查询没有超时,为什么?

dot*_*der 4 sql stored-procedures sql-server-2008

我在sql server 2008上有一个存储过程,它除了一个int参数.它确实调用其他存储过程并具有嵌套的quires.

我面临的问题是,当我从SQL服务器管理工​​作室运行该程序时,它不执行并超时.

如果我在另一个SQL服务器管理工​​作室中单独运行存储过程中的查询,它只执行所有罚款.

我无法调试此问题.将深深感谢任何帮助/指点深入挖掘.

(我在执行proc或查询时使用相同的凭据)

提前致谢.

Ada*_*Dev 9

可能是参数嗅探的情况.

尝试将sproc参数分配给局部变量,并使用sproc中的查询中的那些参数.

例如

CREATE PROCEDURE [TestSproc]
    @Param1 INTEGER
AS
BEGIN
DECLARE @Param1_LOCAL INTEGER
SET @Param1_LOCAL = @Param1

SELECT Something
FROM Somewhere
WHERE SomeField = @Param1_LOCAL 
END
Run Code Online (Sandbox Code Playgroud)