码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-05-18 10:51:13      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

  我一直以为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

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

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!