MASICONG@orclselectsidfromv$mystatwhererownum=1;SID———-35MASICONG@orclselectsidfromv$mystatwhererownum=1;SID—..
masicong@orcl> select sid from v$mystat where rownum=1;
SID
———-
35
masicong@orcl> select sid from v$mystat where rownum=1;
SID
———-
1
1.分别模拟insert,update和delete造成阻塞的示例,并对v$lock中的相应的信息进行说明,给出SQL演示。
MASICONG@orcl> create table test (id varchar(2) primary key);
Table created.
INsert阻塞
MASICONG@orcl> insert into test values (10);
1 row created.
MASICONG@orcl> insert into test values(10); 另一个用户提交同样的请求就会卡住
MASICONG@orcl> select sid,type,id1,id2,lmode,request,block from v$lock where type in (‘TM’,’TX’) ;
SID TY ID1 ID2 LMODE REQUEST BLOCK
———- — ———- ———- ———- ———- ———-
1 TX 131090 674 0 4 0
35 TM 74571 0 3 0 0
1 TM 74571 0 3 0 0
1 TX 65540 508 6 0 0
35 TX 131090 674 6 0 1
说明1会话需要一个4级锁,网站空间,但是35已经加了一个6级的锁阻塞了会话。因为会话1已经插入了一条记录,所以又一个TX锁可以通过。
MASICONG@orcl> select object_name from dba_objects where object_id=74571;
OBJECT_NAME
——————————————————————————–
TEST
通过TM知道目前是在一个表上加的锁,所有通过ID可以查到具体操作的是哪个表。
MASICONG@orcl> commit;
Commit complete.
MASICONG@orcl> insert into test values(10); 当一个会话提交后,另一个会话才能访问
*
ERROR at line 1:
ORA-00001: unique constraint (MASICONG.SYS_C0011055) violated
ViiTor实时翻译
AI实时多语言翻译专家!强大的语音识别、AR翻译功能。
116 查看详情
Update阻塞
MASICONG@orcl> commit
2 ;
Commit complete.
MASICONG@orcl> select * from test;
ID
—
1
10
MASICONG@orcl> update test set id=2 where id =1;
1 row updated.
MASICONG@orcl> update test set id=2 where id =1; 另一回话处于Block状态
MASICONG@orcl> select sid,type,id1,id2,lmode,request,block from v$lock where type in (‘TM’,’TX’) ;
SID TY ID1 ID2 LMODE REQUEST BLOCK
———- — ———- ———- ———- ———- ———-
1 TX 458775 552 0 6 0
1 TM 74571 0 3 0 0
35 TM 74571 0 3 0 0
35 TX 458775 552 6 0 1
显示出现了阻塞信息,会话在等待一个6级的锁
MASICONG@orcl> select sid,event from v$session_wait where sid in (1,35);
SID EVENT
———- —————————————————————-
1 enq: TX – row lock contention
35 SQL*Net message from client
上面标示1会话需要TX锁
DELETE操作
MASICONG@orcl> delete from test where id=10;
1 row deleted.
MASICONG@orcl> select sid,type,id1,id2,lmode,request,block from v$lock where type in (‘TM’,’TX’) ;
SID TY ID1 ID2 LMODE REQUEST BLOCK
———- — ———- ———- ———- ———- ———-
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/525894.html
微信扫一扫
支付宝扫一扫