【问题标题】:Timeout a query查询超时
【发布时间】:2010-10-18 08:37:27
【问题描述】:

我想知道我们是否可以让 sql 查询超时。

从某种意义上说,假设我有一个 sql 查询,其输出只有在 10 分钟内给出输出时才有用,之后即使它输出结果对我也没用。

我想要做的是,如果查询需要超过 10 分钟的时间来处理,那么它应该会杀死自己。

有没有可能的方法?

举个例子会很有帮助。

如果我的想法无法理解,请告诉我..

【问题讨论】:

  • 如果一个查询需要 10 分钟,那么 (a) 你有一个非常大的数据库,(b) 你有所有查询的母亲(不太可能),或者 (c) 你需要重新评估你的索引。我的钱在 (c) 上
  • 10 分钟只是我拿的一个随机值。你可以随时想到
  • 如果查询时间超过 30 秒,我会查看它...
  • 我有一个真正庞大的数据库

标签: sql mysql ado.net


【解决方案1】:

这是SqlCommand.CommandTimeout 的样子

   SqlCommand cmd = new SqlCommand();
   cmd.CommandText = "SELECT blah FROM Categories ORDER BY CategoryID";
   cmd.CommandTimeout = 600;  // 10 minutes = 600 seconds
   // Caveat: it you need a timeout value of more than 30 - 60 seconds
   //         perhaps time to look at why it takes so long...

【讨论】:

    【解决方案2】:

    您可以将Command 对象的CommandTimout 属性设置为10 分钟。当命令超时时,SQL Server 会注意到连接断开并取消查询。

    【讨论】:

    • 你能提供一个例子吗..会有很多帮助
    猜你喜欢
    • 2021-04-19
    • 2013-07-08
    • 2016-01-17
    • 2018-07-10
    • 2019-08-12
    • 2010-11-26
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多