【发布时间】:2011-03-06 17:28:21
【问题描述】:
我有一个场景,有时用户选择正确的参数并进行需要几分钟或更长时间才能执行的查询。我不能阻止他选择这样的参数组合(这很合法),所以我想在查询上设置一个超时。
请注意,我真的想停止查询执行本身并回滚任何事务,否则它会占用大部分服务器资源。添加一个不耐烦的用户重新启动应用程序并再次尝试组合,您就有了灾难的秘诀(阅读:SQL Server DoS)。
这可以做到吗?如何做到?
【问题讨论】:
-
有什么理由不能在代码中的连接对象上设置它吗?
-
@Oded - 因为我想要它在服务器级别,而不是客户端。我可以在客户端连接上设置它,但这只会终止我的连接。查询将继续在服务器上执行,直到完成。
-
据我所知,没有办法在逐个查询的基础上执行此操作。
sp_configure允许设置超时,但我相信它们是服务器范围的。 -
@Oded - 很不幸。 :( 是否愿意将其作为答案以便我接受?
标签: sql-server timeout