SQL Server和Oracel中的锁和死锁(四)

 5 、避免死锁

  ORACLE :

  1) 避免应用不运行长事务。

  2) 经常提交以避免长时间锁定行。

  3) 避免使用LOCK命令锁定表。

  4) 在非高峰期间执行DDL操作。

  5) 在非高峰期间执行长时间运行的查询或事务。

  6) 确保开发人员使用限制最少的锁模式比不过仔细设计防止锁争用的事务,

  7) 监控阻塞其他锁的锁并调查为什么这些锁正被保持。

  8) 确定为什么阻塞的锁的被保持了很长时间并尽量阻止它们。

  9) 监视死锁发生的频率并解决它们。

  10) 当死锁发生通过回滚事务rollback或者终止会话来解决它。

  SQL SERVER :

  SQL SERVER能够自动探测和处理死锁,但应用程序应尽可能的避免,遵循如下原则:

  1) 从表中访问数据的顺序要一致,避免循环死锁。

  2) 减少使用holdlock或使用可重复读与可序列化锁隔离级的查询,从而避免转换死锁。

  3) 恰当选择事务隔离级别。选择低事务隔离级可以减少死锁。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值