gpt4 book ai didi

sql - 为什么有些连接需要很长时间,而其他连接很快?

转载 作者:行者123 更新时间:2023-12-04 22:31:07 24 4
gpt4 key购买 nike

我有一个连接到 SQL Server 2008 实例的网页,试图按顺序执行两个存储过程。第一个成功完成,然后第一个的值传递给第二个。此查询在大约 110 秒后超时。

如果我使用 SQLDbx 打开到 sql 实例的连接,并执行存储过程,它会完成,但需要 108 秒(可疑地接近 ADO 版本的 110)。

但是,如果我打开与 SQL Server 管理控制台 (2008) 的连接并执行存储过程,查询将在大约 4 秒内返回 2 行数据。

我怀疑某种驱动程序问题,但我完全不确定去哪里查看。我希望某种配置修改(在服务器或 ADO 客户端上)可以解决这个问题,但到目前为止,我通过谷歌搜索答案没有找到任何有用的提示。

所以我转向你。

有什么想法吗?

最佳答案

ADO 在 stored procedures 上有问题:

Query Analyser works with ARITHABORT set to ON and ADO.Net runs with ARITHABORT set to OFF. This causes 2 query plans in the procedure cache. Depending on the parameters in the query these plans can be different, and therefore giving very different query performance.
...
So when you get this problem its best to use the WITH RECOMPILE hint to compile the execution plan every time you run the procedure.

试试这样的:
EXEC sp_MyTable1 'Parameter1', 'Parameter2' WITH RECOMPILE
并查看查询在 ADO 中是​​否运行得更好。

关于sql - 为什么有些连接需要很长时间,而其他连接很快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8098776/

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