gpt4 book ai didi

Java存储过程运行缓慢

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:33 24 4
gpt4 key购买 nike

我有一个 java web 应用程序,它使用 next 函数来执行存储过程,它连接到 SQL Server 2008:

Class.forName(sDriver_Reportes);
conn = DriverManager.getConnection(sDB_URL, sUSER, sPASS);
sQuery = "{call procGetResult(?)}";
proc = conn.prepareCall(sQuery);
proc.setString("pDate", sDate);
proc.execute();
rs = proc.getResultSet();

但是返回结果集大约需要7分钟,如果我执行sp只需要10秒就可以显示结果。

我正在寻找一些类似的案例,但只找到了有关参数嗅探和连接池的帖子,但似乎有人都喜欢我的案例,因为 sp 运行得很快,您能给我一些关于在哪里可以查看此问题的信息吗?

提前谢谢您。

最佳答案

这似乎是SQL Server参数嗅探的问题。您需要检查的第一件事是存储过程的执行计划。您可以在 SQL Server Management Studio 中使用以下图标查看它:

Click on the icon marked in Red

现在遇到这个问题,这里有一些解决它的方法:

  1. 使用WITH RECOMPILE选项创建SQL Server存储过程

  2. 使用 SQL Server 提示选项(重新编译)使用 SQL Server 提示

  3. 选项(优化)在 SQL Server 存储上使用虚拟变量

  4. 在实例中禁用 SQL Server 参数嗅探的过程

  5. 对特定 SQL Server 查询禁用参数嗅探级别

为了更好地理解和实现,您可以引用以下链接: https://www.mssqltips.com/sqlservertip/3257/different-approaches-to-correct-sql-server-parameter-sniffing/

关于Java存储过程运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32507623/

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