楼主: ZALBB

[精华] 我对ORACLE数据锁的一点体会

[复制链接]
论坛徽章:
3
授权会员
日期:2007-05-28 23:50:40会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
61#
发表于 2007-5-26 17:56 | 只看该作者
晕了又晕, 想了又想, 学习了, 呵呵.
我发现select for update和update加的表级锁是一样的, 而不是几位朋友所说的select for update加rs锁, update加rx锁. 我用的10.2版本.

session1:
[PHP]
SQL> select * from a where x=1 for update;

         X
----------
         1
[/PHP]
session2:
[PHP] SQL> select a.* from v$lock a, v$lock_type b where a.type=b.type and b.is_user='YES';

ADDR     KADDR    SID TYPE        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
-------- -------- --- ---- ---------- ---------- ---------- ---------- ---------- ----------
270F3A90 270F3AA8 142 TM        11190          0          3          0        108          0
271431E0 271432FC 142 TX       196628        264          6          0        108          0 [/PHP]

session1 先rollback了:
[PHP]SQL> update a set x=2 where x=1;[/PHP]

session2:
[PHP]SQL> select a.* from v$lock a, v$lock_type b where a.type=b.type and b.is_user='YES';

ADDR     KADDR    SID TYPE        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
-------- -------- --- ---- ---------- ---------- ---------- ---------- ---------- ----------
270F3A90 270F3AA8 142 TM        11190          0          3          0         57          0
271431E0 271432FC 142 TX       131085        263          6          0         57          0

[/PHP]


对于表级的share锁我也试了一下, 外键如果没有加索引, update了字表, 然后另一个会话里update父表的pk, 这个update会申请rs锁和share锁, 会被阻塞.
[PHP]ADDR     KADDR    SID TYPE        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK
-------- -------- --- ---- ---------- ---------- ---------- ---------- ---------- ----------
270F3A90 270F3AA8 142 TM        11760          0          3          0         30          1
270F3B3C 270F3B54 143 TM        11757          0          3          0         12          0
270F3BE8 270F3C00 143 TM        11760          0          0          4         12          0
271431E0 271432FC 142 TX       262170        267          6          0         30          0
[/PHP]

使用道具 举报

回复
论坛徽章:
0
62#
发表于 2007-7-2 17:28 | 只看该作者
期待(故事下)!!!!!!!!!!!

使用道具 举报

回复
论坛徽章:
50
2014年世界杯参赛球队: 荷兰
日期:2014-07-11 07:56:59蛋疼蛋
日期:2012-03-06 07:22:542012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-02-13 15:09:522012新春纪念徽章
日期:2012-01-04 11:53:29蛋疼蛋
日期:2011-11-11 15:47:00ITPUB十周年纪念徽章
日期:2011-11-01 16:23:26
63#
发表于 2007-7-3 16:11 | 只看该作者
我也期待故事下

使用道具 举报

回复
论坛徽章:
0
64#
发表于 2007-7-12 09:08 | 只看该作者
学习中

使用道具 举报

回复
论坛徽章:
0
65#
发表于 2007-7-17 12:28 | 只看该作者
好东西啊 !支持 !你好

使用道具 举报

回复
论坛徽章:
0
66#
发表于 2007-7-25 09:54 | 只看该作者
谢谢分享

使用道具 举报

回复
论坛徽章:
0
67#
发表于 2007-7-27 17:34 | 只看该作者
期待故事啊  故事好精彩啊!!!

使用道具 举报

回复
论坛徽章:
2
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44优秀写手
日期:2014-04-03 06:00:12
68#
发表于 2007-7-28 04:21 | 只看该作者
这么精彩的故事怎么能只讲到一半呢!期待续集!

使用道具 举报

回复
论坛徽章:
273
生肖徽章2007版:猪
日期:2008-09-27 09:35:45明尼苏达森林狼
日期:2009-01-12 14:15:09生肖徽章2007版:猪
日期:2009-01-21 16:30:59布鲁克林篮网
日期:2009-03-03 14:42:32圣安东尼奥马刺
日期:2009-03-03 14:44:41生肖徽章2007版:鸡
日期:2009-03-03 21:45:52生肖徽章2007版:牛
日期:2009-03-09 14:03:42生肖徽章2007版:猪
日期:2009-03-10 21:37:00生肖徽章2007版:羊
日期:2009-03-16 10:17:11生肖徽章2007版:虎
日期:2009-03-24 21:26:52
69#
发表于 2007-7-29 11:40 | 只看该作者
赞一个
继续关注

使用道具 举报

回复
论坛徽章:
5
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44生肖徽章2007版:鸡
日期:2008-01-02 17:35:53生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:鼠
日期:2008-01-02 17:35:53
70#
发表于 2007-9-7 17:21 | 只看该作者
我抛块砖

TOM同学毕竟是个聪明的孩子,晚上躺在床上稍微思考了下就想出了如下的办法:
1、每个艺术馆准备一个小册子,第一页上画6个方格子(事务槽,最多同时6个事务),从第二页开始给每个展室编号做出一条记录;
2、当有带X’胸卡的人员A001需要进入101展室时,看第一页的方格子是否还有空余,如果没有的话,让A001等待;否则,看对应的展室101是否有胸卡号码,如果有的话,让A001等待;没有的话,在第一页的空余的方格子里做个标识RX,并在展室编号为101的位置写下A001的编号,(同时给A001一个101编号?),放A001进入101展室;
3、当有带X’胸卡的人员B002需要进入102展室时,看第一页的方格子是否还有空余,如果没有的话,让B002等待;否则,看对应的展室102是否有胸卡号码,如果有的话,让B002等待;没有的话,在第一页的空余的方格子里做个标识RX,并在展室编号为102的位置写下B002的编号,(同时给B002一个102编号?),放B002进入102展室;
3、当有带X’胸卡的人员C003需要进入101展室时,看第一页的方格子是否还有空余,如果没有的话,让C003等待;否则,看对应的展室101是否有胸卡号码,这时101展室写有A001的编号,所以让C003等待;
4、过了半小时,A001出来了,(根据A001拿的编号101?),找到写有A001编号的展室记录,擦去A001的编号,同时到第一页擦除任意一个方格子的RX标识;
5、通过2流程放C003进入101;
6、对于佩带‘S’胸卡的人,我看下他想去的艺术馆对应的小册子的第一页是否有标识,如果有,对不起,他们只能等待,如果没有,他们可以进入;

。。。。。。


写的不好,凑合着看吧!谢谢

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表