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) 恰当选择事务隔离级别。选择低事务隔离级可以减少死锁。

 

你可能感兴趣的:(设计模式,oracle,sql,SQL Server)