代码之家  ›  专栏  ›  技术社区  ›  Prescott

隔离.net 3.5中的SQL Server查询

  •  0
  • Prescott  · 技术社区  · 14 年前

    好吧,我们有两个数据库服务器,一个是我们的,一个是合作伙伴的。我们的合作伙伴最近遇到了一些问题,这些问题导致我们出现了大量的sql超时错误,导致整个系统崩溃。我们希望将这些查询所需的时间限制为最多20秒,否则请停止尝试并抛出错误(我们可以使用try/catch块捕获错误)。

    几个问题:

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

    谢谢

    2 回复  |  直到 14 年前
        1
  •  1
  •   Prescott    14 年前

    连接字符串中的Dumb question-commandTimeout就足够满足我的需要了。

        2
  •  0
  •   Remus Rusanu    14 年前

    这些问题最好由SQL Server解决 Resource Governor . 资源调控器将限制工作负载可以消耗的内存和CPU数量。您可以将服务器分成两个工作负载,并为每个工作负载分配50%的资源,这样您和您的合作伙伴就可以各自消耗50%的服务器资源。这比设置一个 CommandTimeout (必须为每个SqlCommand单独设置,将其设置在连接字符串上没有效果),因为命令超时不仅会影响双方(即滥用资源的一方) 但也太晚了:commandTimeout只会做出反应 之后 服务器速度慢。除此之外,一个政党还可以通过频繁的小命令滥用资源。