2015-12-21 54 views
-1

什么是死锁,以及如何在sql server中处理它们。 例如,当用户超载,然后我的sql服务器给予他们的回应,但其中一些请求被破坏。 我怎么能强制,而我的数据库在短时间内需要很多请求。例如:8个专用服务器同时使用20000-40000个并发用户sql服务器隔离级别和死锁

+1

如果你不知道什么是死锁,你应该从这里开始(https://technet.microsoft.com/en-us/library/ms177433(v = sql.105).aspx)。这不是一个简单的话题,可以在一个问题中解释;它太广泛了。底线是,你可以编写代码来减少死锁,但你可以从根本上*永远不会*完全消除它们。您的应用程序只需要能够在发生时处理它们。 –

+1

简短回答:尝试快照隔离:http://www.brentozar.com/archive/2013/01/implementing-snapshot-or-read-committed-snapshot-isolation-in-sql-server-a-guide/。虽然这个东西很复杂。您应该先隔离特定的查询是否导致死锁。这里有一个链接:http://www.brentozar.com/archive/2014/06/capturing-deadlock-information/。我只是发布链接,因为您需要阅读并理解这些链接,然后发布具体问题。 –

回答

1

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

  • 将cfquery标签放入返回ColdFusion查询对象的函数中。
  • 尝试调用函数使用try/catch语句最多3次
  • 如果还是不成功的

这种方法不限于ColdFusion的抛出一个错误。它可以应用于.net,php,java甚至tsql。

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