隔离.net 3.5中的SQL Server查询

时间:2010-11-15 22:52:19

标签: asp.net sql-server

好的,我们有两台数据库服务器,一台由我们拥有,一台由合作伙伴拥有。我们的合作伙伴最近遇到了一些问题,这些问题导致我们出现了大量的sql超时错误,从而导致整个系统崩溃。我们宁愿限制这些查询最多可以说20秒的时间,否则退出尝试并抛出错误(我们可以通过try / catch块捕获)。

几个问题:

  1. 有没有办法在X秒后将特定的数据库/连接字符串设置为超时?
  2. 这是隔离其他系统的最佳方法吗?或者有更好的方法来解决这个问题吗?
  3. 由于

2 个答案:

答案 0 :(得分:1)

愚蠢的问题 - 连接字符串中的commandTimeout足以满足我的需求。

答案 1 :(得分:0)

这些问题最好由SQL Server Resource Governor解决。资源调控器将限制工作负载可以消耗的内存和CPU的数量。您可以将服务器拆分为两个工作负载,并为每个工作负载分配50%,这样您和您的合作伙伴每个都可以消耗50%的服务器资源。这比设置CommandTimeout要好得多(必须为每个SqlCommand单独设置,在连接字符串上设置它没有效果),因为命令超时不仅会影响双方(即滥用资源受害者)但也为时已晚:commandTimeout只会在服务器运行缓慢后才会对作出反应。此外,一方可以通过频繁的小命令来滥用资源。