【问题标题】:sql deadlocking and timing out almost constantlysql死锁和超时几乎不断
【发布时间】:2011-12-02 20:19:23
【问题描述】:

看来今天又是一个垃圾。我们最近用一个完整的怪物更新了我们的 sql 盒,带有大量的内核和内存,但是我们被旧的 DB 模式卡住了,这是 crapola 我们的旧 sql 盒有问题,但与我们在新的 sql 盒中所经历的完全不同,尽管在推出的那天,它运行得非常快,一周之内就一团糟......

我们大约有几百人使用的 .net 应用程序在 SQL 框上产生了大量的死锁和超时。我们正在努力找出原因。我们已经 - 检查了所有的索引,它们现在已经达到了最好的程度。一些主要的表太宽了,而且触发器的数量也很愚蠢,但是我们现在对此无能为力。

对于多次尝试的同一个用户来说,很多 pid 似乎是相同的......例如......

用户:user1 时间:09:21 错误消息:事务(进程 ID 76)在锁定资源上与另一个进程死锁,并已被选为死锁牺牲品。重新运行事务。

用户:user1 时间:09:22 错误消息:事务(进程 ID 76)与另一个进程在锁资源上死锁,并已被选为死锁牺牲品。重新运行事务。

等..当我们将数据库移动到新盒子时,它会从旧盒子备份并恢复到新盒子......

如果有人对我们可以做的事情有任何建议,我会给他们买几品脱

谢谢

自然

【问题讨论】:

    标签: sql timeout database-deadlocks


    【解决方案1】:

    死锁不一定需要高负载才能发生。它们往往是设计问题的副产品,涉及哪些进程以何种顺序锁定数据、锁定多长时间等。

    SQL 分析器 (2008 article here) 有一些有用的功能可帮助您跟踪和分析死锁。我建议将此作为最佳起点。如果幸运的话,您会发现只有一两个罪魁祸首可以轻松解决问题,例如删除交易或缩短交易寿命。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-03
      • 2015-09-20
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-01
      • 2014-02-28
      相关资源
      最近更新 更多