gpt4 book ai didi

从 .NET 应用程序调用时,SQL Server 运行速度非常慢

转载 作者:行者123 更新时间:2023-12-04 04:45:34 25 4
gpt4 key购买 nike

我在使用 nHibernate 的 ASP.NET 应用程序中对存储过程进行了 SQL 调用:

GetNamedQuery("MyProc")
.SetString("param1", value1)
.SetString("param2", value2)
...

此处使用 SQL Server 2005。它在我们的测试环境中运行良好,这个调用大约需要 2 秒才能完成。但是当我们将它移动到新服务器时,它开始花费很长时间,我的应用程序中出现超时异常。

但是,我在 SQL Server Profiler 中捕获调用,发现该调用运行了 30 秒。但是当我复制相同的查询并在服务器上运行它时,它会在 2 秒内完成。

所以问题是什么会影响 .NET 应用程序的工作查询?

最佳答案

毫无疑问,此类问题最完整的解决方案是 found here ,这方面写得最好的文章之一。 如果 您正在将参数从外部应用程序传递到存储过程中,一个在 80% 的时间内有效的快速解决方法是本地化过程中的参数:

CREATE PROCEDURE sp_Test
@VarOne INT, @VarTwo INT
AS
BEGIN

DECLARE @VOne INT, @VTwo INT
SET @VOne = @VarOne
SET @VTwo = @VarTwo

/* Rest of code only uses @VOne and @VTwo for parameters */

END

但是,这是假设您的应用程序中有存储过程需要的参数(从您发布的简短代码片段中可以看出)。否则,提供的链接还描述了一些其他疏忽,我强烈建议任何人从外部应用程序进行性能故障排除。

关于从 .NET 应用程序调用时,SQL Server 运行速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235652/

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