Oracle单表并行,对Oracle 并行的误解2--其实会锁全表

我一直以为Oracle只会锁住需要修改的数据,但在并行下是这样的,并行update是会锁全表的,下面的实验:

session1:

SQL> select sid from v$mystat where rownum=1;

SID

----------

11

SQL> select sid from v$mystat where rownum=1;

SQL> create table test as select * from dba_objects;

SQL> alter session force parallel dml;

SQL> update /*+parallel(t,4)*/  test t set object_name=‘ggg‘ where object_type=‘TABLE‘;

session2:

SQL> select sid from v$mystat where rownum=1;

SID

----------

8

SQL> update test t set object_name=‘ggg‘ where object_type=‘INDEX‘;--hang住

session3:

SQL> select sid,type,id1,id2,lmode,request,ctime,block from v$lock where sid in(8,11) order by sid;

SID TYPE        ID1        ID2      LMODE    REQUEST      CTIME      BLOCK

---------- ---- ---------- ---------- ---------- ---------- ---------- ----------

8 TM        80189          0          0          3         61          0

8 AE          100          0          4          0       1871          0

11 TO        65927          1          3          0       1305          0

11 TX       196620       5212          6          0         64          0

11 PS            1          2          4          0         64          0

11 PS            1          3          4          0         64          0

11 TM        80189          0          6          0         64          1

11 PS            1          0          4          0         64          0

11 AE          100          0          4          0       2836          0

11 PS            1          1          4          0         64          0

SQL> select object_id,locked_mode from v$locked_object where session_id in(8,11);

OBJECT_ID LOCKED_MODE

---------- -----------

80189           6

80189           0

SQL> select sid,event from v$session_wait where wait_class <>‘Idle‘ and sid in(8,11);

SID EVENT

---------- -------------------------------------------------------------------------

8 enq: TM - contention

原文:http://blog.csdn.net/stevendbaguo/article/details/45815987

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值