超时查询

问题描述:

我想知道我们是否可以超时一个SQL查询。超时查询

从这个意义上说,假设我有一个sql查询的输出是有用的,只有在10分钟内给出输出后,即使它输出结果对我没用。

我想要做的是,如果查询花费超过10分钟来处理,那么它应该只是自杀。

有没有可能的方法呢?

一个例子会很有帮助。

让我知道,如果我的想法是不是难以理解..

+0

如果查询需要10分钟,则(a)你有一个非常大的数据库,(b)您有所有查询的母亲(不太可能) ,或者(c)您需要重新评估您的索引。我的钱是在(c) – 2010-10-18 08:39:54

+0

10分钟只是一个随机值我拿了例如..你可以想到的任何时间 – Egalitarian 2010-10-18 08:42:49

+0

如果一个查询需要超过30秒,我会看着它... – 2010-10-18 08:46:02

下面是它会是什么样子的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... 

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

+0

可以举一个例子..会有很多帮助 – Egalitarian 2010-10-18 08:44:26