oracle锁机制(上)
目录:
锁机制
锁定冲突
解决锁定冲突
死锁
详述:
1.锁机制
• 锁(lock)
– 可防止多个会话同时更改同一数据
– 自动在指定语句尽可能低的级别获取
– 不会升级
oracle锁机制(上)
• Locking机制
– 高级数据并发处理:
执行插入、更新和删除时使用行级锁定
查询不需要任何锁
– 自动队列管理
– 在事务处理结束(进行 COMMIT 或 ROLLBACK 操作)之前一直持有锁
• 数据并发处理
oracle锁机制(上)
• DML锁
– 每个 DML 事务处理必须获取两类锁定:
针对正在更新的一行或者多行的 EXCLUSIVE 行锁定[TX]
针对包含这些行的表 【 Table lock (TM)】 的 【 ROW EXCLUSIVE (RX)】 表级锁定
oracle锁机制(上)
• 入队机制
– 入队机制用于跟踪:
等待锁的会话
请求的锁定模式
请求锁的会话的顺序
oracle锁机制(上)
2.锁定冲突
• 发生锁定冲突
oracle锁机制(上)
• 锁定冲突的可能原因
– 未提交更改
– 长时间运行事务处理
– 不必要的高锁定级别

3.解决锁定冲突
• 检测锁定冲突的诊断工具
– T1:update employees set salary=salary x 1.1;
– T2: update employees set salary=salary x 1.1 where empno=1000;
– T3: update employees set salary=salary x 1.1 where empno=2000;
– 以下动态性能视图可以提供锁定冲突的相关信息
V$LOCK
V$LOCKED_OBJECT
DBA_WAITERS
DBA_BLOCKERS
• 检测锁定冲突
– 在“ Performance(性能)”页上选择"Blocking Sessions(阻塞会话)"。
– 单击"Session ID(会话ID)"链接,查看关于锁定会话的信息,包括实际SQL语句.
– 为了解决锁定冲突,您应该:
提交或者回退持有锁的会话
终止持有锁的会话(在紧急情况下)
• 使用SQL解决锁定冲突
– 可以使用 SQL 语句来确定阻塞会话并终止会话.
oracle锁机制(上)
4.死锁
• 死锁的产生
oracle锁机制(上)

相关文章:

  • 2022-01-18
  • 2022-01-05
  • 2021-08-16
  • 2022-01-16
  • 2021-11-30
  • 2021-09-30
猜你喜欢
  • 2021-11-29
  • 2022-02-14
  • 2021-10-11
  • 2022-12-23
  • 2022-01-11
相关资源
相似解决方案