其他锁(系统锁)的记录:
CU-XXXXXXX-00000000 mode=6 Cursor bind 游标绑定锁 多个
OD-00015bda-00000000 mode=6 指向IND_TEXT02
TT-0000000e-00000010 mode=4 指向SEG$
TT-00000003-00000010 mode=4 指向I_OBJ#
DL-00015bb4-00000000 mode=3 指向TEXT_T1
DL-00015be9-00000000 mode=3 指向SYS_JOURNAL_89050临时对象
ZH-00015be9-00000001 mode=6 指向SYS_JOURNAL_89050临时对象
ZH-00015be9-00000002 mode=6 指向SYS_JOURNAL_89050临时对象
ZH-00015be9-00000003 mode=6 指向SYS_JOURNAL_89050临时对象
ZH-00015be9-00000004 mode=6 指向SYS_JOURNAL_89050临时对象
TS-0000000e-01c000ea mode=6 指向SEG$
TS-0000000e-01893e02 mode=6 指向SEG$
HW-0000000e-01c00082 mode=6 指向SEG$
RO-00010013-00000001 mode=6
RO-00010013-00000002 mode=6
CR-00010013-00000001 mode=6
CR-00010013-00000002 mode=6
关于不同索引语句产生的锁的总结:
offline create index /rebuild 和online create index /rebuild 的不同点
1.offline始终持有4号TM锁来锁定表,堵塞其他事务DML操作;online持有2号TM锁来锁定表,不会堵塞其他事务的DML操作,并发性能更好;
2.online会自动产生SYS_JOURNAL_XXXX的系统临时表来记录日志;
3.online时持有的3号TM锁相比offline时要复杂得多。
create index和alter index rebuild的不同点
1.create index/online是新建索引,当table上没有索引时,需要新建;
2.alter index rebuild/online是重建索引,当索引中删除更改的索引中的被删除项占总的项数的百分比
3.两者维护的数据字典表数量有一定的差异
六、DROP/TRUNCATE/CREATE Table锁的跟踪分析
1.CREATE TABLE
create table test_t3 as select * from text;
TM-0000000e-00000000 mode=3 指向SEG$
TM-00000004-00000000 mode=3 指向TAB$
TM-00000015-00000000 mode=3 指向COL$
create table时被操作表本身不持有锁,只是锁了几个数据字典表去更新
2.DROP TABLE
insert into test_t1 select * from text;
drop table test_t1
TM-00015b62-00000000 mode=6 指向TEXT_T1 开始持有最后释放
TM-000137d9-00000000 mode=3 指向SDO_GEOR_DDL__TABLE$$
TM-00000282-00000000 mode=3 指向SUMDELTA$
TM-0000027f-00000000 mode=3 指向SUMPARTLOG$
TM-00000286-00000000 mode=3 指向SNAP_LOADERTIME$
TM-0000008e-00000000 mode=3 指向RECYCLEBIN$
TM-000000e1-00000000 mode=3 指向IDL_UB1$
TM-000000e2-00000000 mode=3 指向IDL_CHAR$
TM-000000e3-00000000 mode=3 指向IDL_UB2$
TM-000000e4-00000000 mode=3 指向IDL_SB4$
TM-000000e5-00000000 mode=3 指向ERROR$
TM-00000012-00000000 mode=3 指向OBJ$
TM-000137cf-00000000 mode=3 指向SDO_GEOR_SYSDATA_TABLE
TM-000139b3-00000000 mode=3 指向SDO_TIN_PC_SYSDATA_TABLE
TM-000139b1-00000000 mode=3 指向SDO_TIN_PC_SEQ
TM-000137d9-00000000 mode=3 再次指向SDO_GEOR_DDL__TABLE$$
(以上TM锁全部释放后)
TM-00000012-00000000 mode=3 指向OBJ$
TM-0000000e-00000000 mode=3 指向SEG$
drop table持有6号TM排他锁,禁止其他事务执行任何DML语句。
2.TRUNCATE TABLE
truncate table test_t2
TM-00015b46-00000000 mode=6 指向TEST_T2 开始持有最后释放
TM-0000028a-00000000 mode=3 指向MLOG$
TM-000001e4-00000000 mode=3 指向MON_MODS$
TM-00000047-00000000 mode=3 指向SUPEROBJ$
TM-000001c5-00000000 mode=3 指向TAB_STATS$
TM-00000004-00000000 mode=3 指向TAB$
TM-0000000e-00000000 mode=3 指向SEG$
TM-00000012-00000000 mode=3 指向OBJ$
(以上TM锁全部释放后)
TM-0000000e-00000000 mode=3 指向SEG$
truncate table持有6号TM排他锁,禁止其他事务执行任何DML语句。
七、总结
锁模式 锁描述 解释 sql操作0 none
1 null 预留模式,仅起标志作用
2 Row-S 行共享(RS) 行级共享锁,其他对象只能查询这些数据行 Create index online,Alter index rebuild online
3 Row-X 行专用(RX) 行级排他锁,在提交前不允许做DML操作 insert into table,update table,delete from xxx
4 Share 共享锁(S) 共享锁 Create index,Alter index rebuild
5 S/Row-X 共享行专用(SRX) 共享行级排他锁
6 exclusive 专用(X) 排他锁 drop table,truncate table,drop index