【问题标题】:SQL Server isolation level, deadlocks across Load Ballancing [closed]SQL Server隔离级别,负载平衡死锁[关闭]
【发布时间】:2016-03-27 23:36:08
【问题描述】:

我知道什么是死锁以及数据库是如何生成的。我的目标是彻底澄清这个问题并记录下来。

1- 我如何处理 sql server 中的死锁?是否有任何库或工具来处理主题?

2- 在实时场景中,当我的数据库在短时间内接受大量请求时,我如何强制执行。例如:我有 8 台专用服务器,他们正在使用 一秒钟内每个请求 20 000-40 000。

a-> 哪个是最好的负载平衡工具,特别是如果我想 摆脱死锁

b-> 应该在哪一层最适合负载均衡 物理层或软件层或两者兼而有之。当然是两者,但如何 在你的经历中?例如,netscaler 在物理上如何?一世 想知道它们的优缺点吗?

【问题讨论】:

  • 如果你不知道什么是死锁,你应该开始here。这不是一个可以用问题来解释的简单话题;它太宽泛了。底线是您可以编写代码来减少死锁,但您基本上永远可以完全消除它们。您的应用程序只需要在它们发生时能够处理它们。
  • 简短回答:尝试快照隔离:brentozar.com/archive/2013/01/…。不过这东西很复杂。您应该首先隔离特定查询是否导致死锁。这是一个链接:brentozar.com/archive/2014/06/capturing-deadlock-information。我只是发布链接,因为您需要阅读并理解这些链接,然后发布特定问题。

标签: sql-server multithreading deadlock isolation


【解决方案1】:

这是一个长格式的评论。在我的一些 ColdFusion 应用程序中,我采用了以下方法来处理死锁。

  • 将 cfquery 标签放入返回 ColdFusion 查询对象的函数中。
  • 尝试使用 try/catch 调用该函数最多 3 次
  • 如果仍然不成功则抛出错误

这种方法不限于 ColdFusion。它可以应用于.net、php、java,甚至tsql。

此外,它不会消除死锁问题。但是,它会减少它发生的次数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多