db2关于SIX锁的疑问

首先,SIX是一种特殊的表锁,它是由S+IX或者IX+S锁形成的。
如下语句可以模拟SIX锁。
1、create table test (id int);
2、db2 lock table in share mode; ----形成S锁
3、db2 +c "insert into test values(1)";-----插入数据须申请IX锁

这样,用db2pd可以看到SIX锁。

现在的疑问是,上述命令是在同一窗口执行的,相当于同一事务,若把2与3命令分别放在两个窗口执行,
相当于两个事务,由于S锁与IX锁不兼容,会形成锁等待,而不是会形成SIX锁。

请问我上面的假设是否成为立?

附加一个问题,db2 lock table in share mode后,怎么解除S锁状态。
参与5

4同行回答

atpeace331atpeace331数据库管理员银行
事务提交(commit)或回滚(rollback)的时候,锁才会释放。显示全部
事务提交(commit)或回滚(rollback)的时候,锁才会释放。收起
银行 · 2015-01-09
浏览1211
richard_macyrichard_macy数据库管理员macys
db2 commitordb2 rollback显示全部
db2 commitor
db2 rollback收起
零售/批发 · 2015-01-07
浏览1135
gggeeqggggeeqg系统运维工程师中国银行
修正一下:2、db2 lock table in share mode; ----形成S锁改成为  2、db2 +c "lock table in share mode"; ----形成S锁经过测试,上述结论是对滴。显示全部
修正一下:
2、db2 lock table in share mode; ----形成S锁
改成为  2、db2 +c "lock table in share mode"; ----形成S锁

经过测试,上述结论是对滴。收起
银行 · 2015-01-06
浏览1261
leiqustleiqust数据库运维工程师pccw
db2 lock table in share mode 提交后锁就解除了显示全部
db2 lock table in share mode 提交后锁就解除了收起
互联网服务 · 2015-01-06
浏览1228

提问者

gggeeqg
系统运维工程师中国银行
擅长领域: 存储安全软件定义存储

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-01-06
  • 关注会员:1 人
  • 问题浏览:20130
  • 最近回答:2015-01-09
  • X社区推广