[每日一题] 11gOCP 1z0-052 :2013-09-25 Lock ――for update.................................C23
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12021587
正确答案:ABE
这道题需要我们了解锁的知识点。
TM锁的模式:
0-None --没有锁 select
1-Null --空锁
2-SS(RS) --行级共享锁(Row Shared,简称RS锁)
通过lock table t10 in row sharemode;命令添加RS锁
3-SX(RX) --行级排他锁(Row exclusive)RX锁
进行DML时,会自动在被更新的表上添加RX锁,可以执行LOCK命令显式的在表上添加RX锁
允许其他事务通过DML语句修改相同表里的其他数据行
允许使用lock table t10 in row exclusive mode;命令对表添加RX锁定;
不允许其他事务对表添加X锁
通过select … from for update命令添加RX锁
4-S --共享锁(Share,简称S锁)
通过lock table t10 in share mode;命令添加该S锁(wait for ITL release)
5-SSX(SRX) --共享行级排他锁(Share Row Exclusive,简称SRX锁)
通过lock table t10 in share rowexclusive mode;命令添加SRX锁
6-X --排他锁(Exclusive,简称X锁)
通过lock table t10 in exclusive mode命令添加X锁
根据题意,我们开起一个会话执行以上的for update的语句会产生一个3号锁(在9i是号锁,10g及以上版本是3号锁)和6号锁。操作如下,观察锁。
1、在125号会话下,执行select语句
gyj@OCM> select sid from v$mystat where rownum=1;
SID
----------
125
gyj@OCM> SELECT ename
2 FROM emp
3 WHERE job='CLERK' FOR UPDATE OF empno;
ENAME
----------
SMITH
ADAMS
JAMES
MILLER
2、查125会话的锁信息
gyj@OCM> select * from v$lock where sid=125; ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
00000000910D8F58 00000000910D8FB0 125 TO 68064 1 3 0 273 0
00000000910D91F8 00000000910D9250 125 AE 100 0 4 0 993 0
00002B18F6AFC2E0 00002B18F6AFC340 125 TM 77522 0 3 0 145 0
000000008FB4E7E0 000000008FB4E858 125 TX 196640 1474 6 0 105 0
发现TM的3号锁,TX的6号锁。
OK,我们对答案一一解析:
答案A正确,会被阻塞。开另一个会话:22号会话,执行如下:
gyj@OCM> select sid from v$mystat where rownum=1;
SID
----------
22
gyj@OCM> LOCK TABLE emp IN SHARE MODE;
被阻塞了,LOCK TABLE emp IN SHARE MODE;会产生4号锁
gyj@OCM> select * from v$lock where sid in(125,22); ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
00000000910D8F58 00000000910D8FB0 125 TO 68064 1 3 0 557 0
00000000910D91F8 00000000910D9250 125 AE 100 0 4 0 1277 0
00000000910DA0F0 00000000910DA148 22 AE 100 0 4 0 304 0
00002B18F6AFD318 00002B18F6AFD378 22 TM 77522 0 0 4 107 0
00002B18F6AFD318 00002B18F6AFD378 125 TM 77522 0 3 0 429 1
000000008FB4E7E0 000000008FB4E858 125 TX 196640 1474 6 0 389 0
答案B正确,会被阻塞。开另一个会话:17号会话,执行如下:
gyj@OCM> select sid from v$mystat where rownum=1;
SID
----------
17
gyj@OCM> LOCK TABLE emp IN EXCLUSIVE MODE;
被阻塞了,LOCK TABLE emp IN EXCLUSIVE MODE;会产生6号锁
gyj@OCM> select * from v$lock where sid in(125,17); ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
00000000910D8F58 00000000910D8FB0 125 TO 68064 1 3 0 726 0
00000000910D91F8 00000000910D9250 125 AE 100 0 4 0 1446 0
00000000910D99F0 00000000910D9A48 17 AE 100 0 4 0 91 0
00002B18F6AFC2E0 00002B18F6AFC340 17 TM 77522 0 0 6 70 0
00002B18F6AFC2E0 00002B18F6AFC340 125 TM 77522 0 3 0 598 1
000000008FB4E7E0 000000008FB4E858 125 TX 196640 1474 6 0 558 0
答案C不正确,不会被阻塞。开一另会话148号会话,操作如下:
gyj@OCM> select sid from v$mystat where rownum=1;
SID
----------
148
gyj@OCM> UPDATE emp SET sal=sal*1.2 WHERE job='MANAGER';
3 rows updated.
没有被阻塞,可以更新,在同一个表中更新不同的行,锁不会有冲突。
gyj@OCM> select * from v$lock where sid in(125,148); ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
00000000910D8F58 00000000910D8FB0 125 TO 68064 1 3 0 1684 0
00000000910D91F8 00000000910D9250 125 AE 100 0 4 0 2404 0
00000000910D92D8 00000000910D9330 148 AE 100 0 4 0 265 0
00002B18F6AFC2E0 00002B18F6AFC340 148 TM 77522 0 3 0 108 0
00002B18F6AFC2E0 00002B18F6AFC340 125 TM 77522 0 3 0 121 0
000000008FB01218 000000008FB01290 148 TX 327685 1488 6 0 65 0
000000008FB4E7E0 000000008FB4E858 125 TX 131082 1475 6 0 121 0
答案D不正确,不会被阻塞。与答案C一样的情况,这里就不再说了。
答案E正确,会被阻塞。开另一会话 143号会话,执行如下
gyj@OCM> select sid from v$mystat where rownum=1;
SID
----------
143
gyj@OCM> SELECT ename FROM emp WHERE job='CLERK' FOR UPDATE OF empno;
被阻塞了,更新同一行,会有行锁的冲突。
gyj@OCM> select * from v$lock where sid in(125,143); ADDR KADDR SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---------------- ---------------- ---------- -- ---------- ---------- ---------- ---------- ---------- ----------
00000000910D8F58 00000000910D8FB0 125 TO 68064 1 3 0 2019 0
00000000910D91F8 00000000910D9250 125 AE 100 0 4 0 2739 0
00000000910D98F8 00000000910D9950 143 TX 131082 1475 0 6 82 0
00000000910D9D70 00000000910D9DC8 143 AE 100 0 4 0 114 0
00002B18F6AFD318 00002B18F6AFD378 125 TM 77522 0 3 0 456 0
00002B18F6AFD318 00002B18F6AFD378 143 TM 77522 0 3 0 82 0
000000008FB4E7E0 000000008FB4E858 125 TX 131082 1475 6 0 456 1
锁的机制中有一个非常重要的概念:锁的兼容性,看下面这幅图:
QQ:252803295
技术交流QQ群:
DSI&Core Search Ⅰ 群:127149411(2000人技术群:未满)
DSI&Core Search Ⅱ 群:177089463(1000人技术群:未满)
DSI&Core Search Ⅲ 群:284596437(500人技术群:未满)
DSI&Core Search Ⅳ 群:192136702(500人技术群:未满)
DSI&Core Search Ⅴ 群:285030382(500人闲聊群:未满)
MAIL:dbathink@hotmail.com
BLOG: http://blog.csdn.net/guoyjoe
WEIBO:http://weibo.com/guoyJoe0218
ITPUB: http://www.itpub.net/space-uid-28460966.html
OCM: http://education.oracle.com/education/otn/YGuo.HTM
[每日一题] 11gOCP 1z0-052 :2013-09-25 Lock ――for update.................................C23的更多相关文章
- [每日一题] 11gOCP 1z0-052 :2013-09-1 RMAN-- repair failure........................................A20
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10859315 正确答案:D 一.模拟上题的错误: 1.删除4号文件 [oracle@myd ...
- [每日一题] 11gOCP 1z0-053 :2013-10-9 backup with the KEEP option....................................33
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12517603 正确答案:AB 在Oracle 11g中,可以使用backup ….keep ...
- [每日一题] 11gOCP 1z0-053 :2013-10-12 RESULT_CACHE在哪个池?.............................44
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12657479 正确答案:B Oracle 11g 新特性:Result Cache , ...
- [每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10784599 . 正确答案:A 将逻辑存储与物理存储分开是关系数据库范例的必要部分.关系数 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-19 创建用户...................................................B41
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11834661 正确答案:BC 这道题比较简单,我就以答案来解析,如下来自官方文档创建用户的 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-17 DRA--Data Recovery Advisor.............................B31
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11818529 正确答案:AD 数据库恢复顾问(DRA)是一个诊断和修复数据库问题的工具.共 ...
- [每日一题] 11gOCP 1z0-052 :2013-09-5 runInstaller oracle of no swap
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11186995 正确答案:A 我们先来看下面这张截图,这是我在安装Oracle 11.2.0 ...
- [每日一题] 11gOCP 1z0-053 :2013-10-11 Flashback Data Archive属性.........................43
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12656897 正确答案:BD 闪回数据归档请参考:http://blog.csdn.net ...
- [每日一题] 11gOCP 1z0-053 :2013-10-7 the backup of MULT_DATA................................32
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12500579 正确答案:D RMAN 的新增功能 对超大型文件应用 Intraf ...
- [每日一题] 11gOCP 1z0-052 :2013-09-2 ADDM(Automatic Database Diagnostic Monitor)...................A28
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/10951207 正确答案:BC AWR简称Automatic Workload Reposi ...
随机推荐
- 关于UIButton中的ContentEdgeInsets的深入研究
UIButton的contentEdgeInsets属性的深入研究 由于用UIButton这个属性做过一些东西,但是对它的规律始终不太了解,虽然苹果官方文档的解释大体上可以理解为,这个属性设置的是内边 ...
- JAVA中常用需要设置的三个环境变量(JAVA_HOME、CLASSPATH、PATH)
JAVA中常用需要设置的三个环境变量: JAVA_HOME.CLASSPATH.PATH (一) 配置环境变量:(相对路径) 1. JAVA_HOME=x:/jdk1.6.0 2. 用%JAVA_HO ...
- nyoj 104 最大和 (二维最大字串和)
描述 给定一个由整数组成二维矩阵(r*c),现在需要找出它的一个子矩阵,使得这个子矩阵内的所有元素之和最大,并把这个子矩阵称为最大子矩阵. 例子: - - - - - - - 其最大子矩阵为: - - ...
- python学习之路-10 网络编程之进阶
本篇介绍内容 作用域 python类的多继承 IO多路复用 socketserver之源码剖析 多线程和多进程 作用域 if 1 == 1: name = "xxx" print( ...
- [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句
LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...
- OpenStack中给wsgi程序写单元測试的方法
在 OpenStack 中, 针对web应用, 有三种方法来写单元測试 1) 使用webob生成模拟的request from __future__ import print_function imp ...
- Android窗口管理服务WindowManagerService对壁纸窗口(Wallpaper Window)的管理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8550820 Android系统中,壁纸窗口和输 ...
- Linux curses库使用
相信您在网路上一定用过如 tin,elm 等工具, 这些软体有项共同的特色, 即他们能利用上下左右等方向键来控制游标的位置. 除此之外, 这些程式的画面也较为美观. 对Programming 有兴趣 ...
- HTTPS那些事(一) HTTPS原理
谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行网络加密传输的一些情况,从回复来看,争议还是有的.随着网络越来越普及,应用越来越广泛,一 ...
- Oracle 回忆录
简述 工作时间说短也不算短了,掐指一算差不多三年了吧.以前都没有写过Blog,仅偶尔对所学和所用到的做些许整理,后面竟然没有把那留下来,悲催啊!留不下来的整理不是好东西(*^__^*) 嘻嘻……,现在 ...