【发布时间】:2023-03-27 00:23:01
【问题描述】:
我有一个连接到 SQL Server 2008 实例的网页,尝试依次执行两个存储过程。第一个成功完成,然后将第一个的值传递给第二个。此查询在大约 110 秒后超时。
如果我使用 SQLDbx 打开到 sql 实例的连接并执行存储过程,它会完成,但需要 108 秒(可能接近 ADO 版本的 110 秒)。
但是,如果我打开与 SQL Server 管理控制台 (2008) 的连接并执行存储过程,查询会在大约 4 秒内返回 2 行数据。
我怀疑是某种驱动程序问题,但我完全不知道该去哪里找。我希望某种配置修改(在服务器或 ADO 客户端上)可能会解决这个问题,但到目前为止,我通过谷歌搜索答案并没有找到任何有用的提示。
所以我转向你。
有什么想法吗?
【问题讨论】:
-
您收到的确切超时消息是什么? SQL 不会因为执行时间长而超时,这可能是您的 Web 应用程序超时(例如 PHP 默认在 30 秒后自行终止)或与服务器的连接超时。您确定它也在执行正确的查询/操作吗? SSMS 将比 ADO 的驱动程序更快地运行任何查询,但不会快得多,除非配置错误或驱动程序有故障。
-
确实如此......也许我把它的标题弄错了,因为我们最初是如何考虑这个问题的。也就是说,我对超时不太感兴趣,就像对 108 秒和 5 秒之间的差异一样
-
ADO 很慢,如果可能的话我会考虑另一个驱动程序。它不应该那么慢,但是当使用 PHP 的默认 MSSQL 驱动程序而不是 ADO 时,我从普通查询的 50 毫秒查询时间到
-
我应该补充一点,我们已经针对多个 sql server 2005 实例部署了这个精确的解决方案,并且它在那里的行为符合预期。问题在于与 2008 年的连接。另外,我相当肯定(read hopful)查询分析器 SqlDbx 没有使用 ADO,但我可能对那个内部细节有误.
标签: sql sql-server-2008 ado.net timeout