oracle ddl 锁查询,关于oracle DDL锁的实验和疑问

关于DDL 锁的一些实验和疑问,欢迎大家讨论

scott@NEI> select count(*) from big;

COUNT(*)

----------

849303

scott@NEI> select sid from v$mystat where rownum<2;

SID

----------

159

scott@NEI> alter table big drop column owner;

Table altered. ========》执行这个的时候会hang住约10秒

此时开启另一个session

ys@NEI> r

1* select * from dba_ddl_locks where session_id=159

SESSION_ID OWNER                NAME                 TYPE                 MODE_HELD MODE_REQU

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

159 SYS                  DICTIONARY_OBJ_OWNER Table/Procedure/Type Null      None

159 SYS                  DBMS_SYS_SQL         Body                 Null      None

159 SYS                  DBMS_STANDARD        Table/Procedure/Type Null      None

159 XDB                  XD+s5hmkr05krgMFeMBR 25                   Share     None

YQnQ==

159 XDB                  DBMS_XDBZ0           Body                 Null      None

159 SYS                  XML_SCHEMA_NAME_PRES Table/Procedure/Type Null      None

ENT

159 SYS                  PLITBLM              Table/Procedure/Type Null      None

159 SYS                  XML_SCHEMA_NAME_PRES Body                 Null      None

ENT

159 SYS                  DICTIONARY_OBJ_TYPE  Table/Procedure/Type Null      None

159 XDB                  XD+s5hmkh15krgMFeMBR 25                   Share     None

YQnQ==

159 SYS                  DATABASE             18                   Null      None

159 SYS                  DBMS_SQL             Body                 Null      None

159 SCOTT                SCOTT                18                   Null      None

159 SYS                  DBMS_OUTPUT          Table/Procedure/Type Null      None

159 SYS                  DBMS_APPLICATION_INF Table/Procedure/Type Null      None

O

159 XDB                  XDh1jUheYAR5PgNAgAIL 25                   Share     None

JCxg==

159 SYS                  AW_DROP_PROC         Table/Procedure/Type Null      None

159 XDB                  XDbD/PLZ01TcHgNAgAII 25                   Share     None

egtw==

159 XDB                  XDB$EXTNAME2INTNAME  Table/Procedure/Type Null      None

SESSION_ID OWNER                NAME                 TYPE                 MODE_HELD MODE_REQU

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

159 SYS                  DBMS_SQL             Table/Procedure/Type Null      None

159 XDB                  DBMS_XDBZ0           Table/Procedure/Type Null      None

159 SYS                  DBMS_APPLICATION_INF Body                 Null      None

O

159 SYS                  DICTIONARY_OBJ_NAME  Table/Procedure/Type Null      None

23 rows selected.

没有任何关于这个DDL的信息

另一个session

select * from v$lock where sid=159

425C447C 425C4494        159 TM                       134145          0          5          0          7          0

426028C8 426029E4        159 TX                       655370      39916          6          0          7          0

可以看出获得一个共享排他锁S/Row-X (SSX)和排他的X锁这个时候我觉得应该在操作数据字典表也就是tab$

sys@NEI> select owner,object_name,status from all_objects where object_id=134145;

OWNER                OBJECT_NAME                    STATUS

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

SCOTT                BIG                            VALID

我的问题就是为什么在dba_ddl_locks里面查不到锁的信息~我昨天做的实验中偶尔是可以查到一个share模式的锁

但今天怎么也查不到了。请大侠们一起来看看