【问题标题】:ODBC timeout error on simple query简单查询的 ODBC 超时错误
【发布时间】:2011-02-27 13:32:30
【问题描述】:

在对 SQL Server 数据库执行 sql 代码时,我们遇到以下 ODBC 超时错误。

“连接错误:[Microsoft][ODBC SQL Server Driver]Timeout expired” “S1T00”

这里令人困惑的是,我们的堆栈转储表明它在发生超时时执行的 SQL 代码非常简单:

选择 @@TRANCOUNT 作为 TranCount

或者有时...

开始交易

我们的客户说,发生这些错误时数据库服务器上的负载并没有压倒一切。什么可能导致这些简单的语句超时?我相信超时设置相当短(在 1 到 5 秒之间)......但是,SELECT @@TRANCOUNT 应该是瞬时的。

有什么想法吗?

【问题讨论】:

    标签: sql-server odbc timeout foxpro


    【解决方案1】:

    它可能与驱动程序有关,但我认为 ODBC 超时可能由客户端处理。这意味着从病毒扫描程序到杂项进程的任何网络延迟甚至轻微的服务器故障都可能很容易导致 1 或 2 秒的延迟。因此,如果您的超时实际上是 1 秒,那么您可能会遇到超时错误似乎并不奇怪。

    对于合理的超时,即使 5 秒似乎也有点偏低。这是假设客户端和服务器不在同一台物理机器上。

    【讨论】:

    • 您对此可能是正确的 - 1 秒似乎很短。我将不得不进行调查以确保我对代码的解释是正确的。延长超时似乎很容易,但不幸的是,这是第 3 方代码,更改超时很容易产生意想不到的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2017-12-14
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多