ITPub博客

首页 > 数据库 > 数据库开发技术 > DB2的锁(1)

DB2的锁(1)

原创 数据库开发技术 作者:larrybupt 时间:2010-08-05 22:52:23 0 删除 编辑

表锁

IN 无意图锁,不需要行锁 该锁拥有者可以读表中的任何数据,包括其他用户尚未提交的数据,但不能对表中的数据进行updata

IS 意图共享锁 该锁的拥有者可以在拥有行S锁后,可以读取改行的数据,但不能对该行进行更改 需要行锁配合

IX 意图排他锁 该锁拥有者在得到相应行的X锁后,可以更改该行的数据需要行锁配合

SIX 共享With意图排他锁 可以读表中的任何数据,如果获得相应的X锁,就可以修改该行; SIX在IX下,请求S,或者在S下请求IX需要行锁配合

S 共享锁 可以读表中的任何数据,如果表被加S锁,只能读取,不能update

U 更新锁 可以读表中的任何数据,在升级到X锁后,还可以更改表中的任何数据,该锁处于等待对数据进行更改的一种中间状态。U锁的设计主要是避免两个应用程序在拥有S锁的情况下,同事申请X锁造成的死锁。

X排他锁 可以读取or更改表中任何数据,除了 未提交读程序外,其他应用程序不能读写

Z 超级排他锁 由于drop alter 表,create drop index而获得的。

若不指定,则不需要行锁配合

A B

IN

IS

S

IX

SIX

U

X

Z

IN

1

1

1

1

1

1

1

0

IS

1

1

1

1

1

1

0

0

S

1

1

1

0

0

1

0

0

IX

1

1

0

1

0

0

0

0

SIX

1

1

0

0

0

0

0

0

U

1

1

1

0

0

0

0

0

X

1

0

0

0

0

0

0

0

Z

0

0

0

0

0

0

0

0

1 兼容 0不兼容

行锁

需要表锁的最低级别

S 共享锁 IS 该行正在被读取,其他应用程序只能对该行进行读操作;

U 更改锁 IX 正在读,可能改,其他应用程序只能读该行,其他应用只能读该行

X 排他 IX 更改,正在更改,其他应用程序不能访问该行

W 弱排他 weak eXclusive IX 当一行数据插入某表时,该行会被加上W锁,锁的拥有者可以更改本行,该锁于X锁基本相同,但是和NW锁兼容

NS 下一键共享 IS 锁的拥有者可以和其他应用程序读该行,但不能更改该行,当处于RS CS时相当于S

NX 下一键排他 IX 当一行数据被插入到索引中,或者从索引中删除的时候,该行的下一行会被加上该锁,锁的拥有者可以读但是不能更改锁定行,该锁于X锁类似,但是和NS锁兼容

NW 下一键弱排他, IX 当一行数据被插入到索引的时候,该行的下一行会被加上该锁,可以读但是不能update,与X、NX锁类似,但它与W和NS锁兼容。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24386451/viewspace-1036223/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 学习数据库
下一篇: DB2的锁(2)
请登录后发表评论 登录
全部评论
  • 博文量
    4
  • 访问量
    1823