> 数据库 > DB2 >

介绍一下DB2的锁策略

锁是数据库为了控制并发数据的完整性而引入的机制。

锁定的对象:数据库、表空间、表、记录

锁定的模式(强度)

基本的锁类型有两种:排它锁(Exclusive locks记为X锁)和共享锁(Share locks记为S锁)。

  • 排它锁:若事务T对数据D加X锁,则其它任何事务都不能再对D加任何类型的锁,直至T释放D上的X锁;一般要求在修改数据前要向该数据加排它锁,所以排它锁又称为写锁。
  • 共享锁:若事务T对数据D加S锁,则其它事务只能对D加S锁,而不能加X锁,直至T释放D上的S锁;一般要求在读取数据前要向该数据加共享锁,所以共享锁又称为读锁。

锁定的长度

写锁定(如X、W、NW、Z等)

  • 持续到事务结束(提交或是回滚)时释放

读锁定(如S、NS、U等)

  • Repeatable Read(RR) 所有的读锁定在事务结束时才释放
  • Read Stability(RS) 在符合条件的记录上所读取得的读锁定,会持续到事务结束时才释放。而不符合条件的记录上的读锁定,则在读取下一笔记录时就立刻释放
  • Cursor Stability(CS) 目前所读取的记录上的读锁定,会在读取下一笔记录时就立刻释放
  • Uncommitted Read(UR) 在读取记录时,不会取得读锁定。也就是一般所说的脏读。
  • 缺省模式为CS
(责任编辑:IT)