【问题标题】:ADO .Net / C# Database Connection PoolsADO .Net / C# 数据库连接池
【发布时间】:2014-04-09 05:45:07
【问题描述】:

如果我在 ADO.Net 连接中设置 TimeOut=10, SqlCommandTimeout=100,如果我的查询时间超过 10 秒,比如 50 秒,我会返回结果还是会发生连接超时?

【问题讨论】:

  • 你试过了吗,结果如何?
  • 抱歉,如果您的查询需要 50 秒,您需要修复查询
  • 有一些有效的场景。假设在非工作时间将大型数据库作为后端计划作业运行是可能的。这可以从报告引擎调用以发送自动报告。但我同意。可以进行一些查询调优。

标签: c# entity-framework ado.net timeout


【解决方案1】:

连接成功会有结果。 TimeOut 是连接超时。 (连接到 SQL Server 所用的时间)。连接成功后,如果查询开始执行 50 秒,则返回结果,因为 SQL 命令超时时间为 100 秒。

【讨论】:

    【解决方案2】:

    ADO.Net 中有多个超时。
    有一个TimeOut 用于连接尝试(即等待创建数据库连接的时间),
    并且有 TimeOut 用于命令执行(即等待命令执行并返回结果的时间)

    我不知道你写的第一个TimeOut是什么,但是SqlCommandTimeout是等待SQL命令执行的秒数,因此你应该得到一个结果,因为超时您指定的时间比实际命令运行的时间长。

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 1970-01-01
      • 2020-03-30
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 2010-10-23
      相关资源
      最近更新 更多