gpt4 book ai didi

sql-server - SQL Server 存储过程的运行时间比从 Management Studio 中的文本执行相同查询的时间要长得多

转载 作者:行者123 更新时间:2023-12-02 14:30:15 26 4
gpt4 key购买 nike

所以这里有点奇怪......我有一个需要 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

关于sql-server - SQL Server 存储过程的运行时间比从 Management Studio 中的文本执行相同查询的时间要长得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com