简述Oracle的锁类型 ?

Oracle数据库的锁类型主要分为以下几类:

  1. DML锁(数据锁):用于保护数据的完整性。在Oracle数据库中,DML锁主要包括TM锁和TX锁。其中,TM锁称为表级锁,TX锁称为事务锁或行级锁。当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁,当TM锁获得后,系统再自动申请TX类型的锁,并将实际锁定的数据行的锁标志位进行置位。这样在事务加锁前检查TX锁相容性时就不用再逐行检查锁标志,而只需检查TM锁模式的相容性即可,大大提高了系统的效率。
  2. DDL锁(字典锁):用于保护数据库对象的结构,索引等的结构定义。
  3. 内部锁和闩(internal locks and latches):保护数据库的内部结构。

此外,Oracle数据库的锁还包括TM锁和TX锁等。这些锁的目的是在并发情况下保证数据完整性。在数据行上只有X锁(排他锁)。当一个事务首次发起一个DML语句时就获得一个TX锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行DML语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后,TX锁被释放,其他会话才可以加锁。

发表评论

后才能评论