Oracle 唯一主键引发的行锁
发布时间:2020-12-12 16:02:56 所属栏目:百科 来源:网络整理
导读:SQL create table test(id int PRIMARY KEY,name char(10));表已创建。Session 1:SQL select * from v$mystat where rownum2; SID STATISTIC# VALUE---------- ---------- ---------- 1165 0 0SQL select * from test;未选定行SQL insert into test values(1
SQL> create table test(id int PRIMARY KEY,name char(10));
表已创建。
Session 1:
SQL> select * from v$mystat where rownum<2;
SID STATISTIC# VALUE
---------- ---------- ----------
1165 0 0
SQL> select * from test;
未选定行
SQL> insert into test values(1,'a');
已创建 1 行。
Session 2:
SQL> select * from v$mystat where rownum<2;
SID STATISTIC# VALUE
---------- ---------- ----------
1174 0 0
SQL> insert into test values(1,'a'); --堵塞
SQL> select sid,username,machine,BLOCKING_SESSION,event from v$session where event='enq: TX - row lock contention';
SID USERNAME MACHINE BLOCKING_SESSION EVENT
---------- ------------------------------ ---------------------------------------------------------------- ---------------- ----------------------------------------------------------------
1174 SYS oadb 1165 enq: TX - row lock contention
1165 堵塞了1174
这是有唯一主键的情况下,那么没有唯一主键呢?
Sesssion 1:
SQL> create table test2(id int,name char(10));
表已创建。
SQL> insert into test2 values(1,'a');
已创建 1 行。
Session 2:
SQL> insert into test2 values(1,'a');
已创建 1 行。
没有唯一主键,就不会引起行锁 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
