当我TRUNCATE 一个用户下的表的时候,总会锁定MLOG$表,而且这个TRUNCATE的时间巨漫长,实在等不及只好把它kill掉
这个MLOG$ 到底是什么表?
物化视图日志表
这个表可以这样产生:
create snapshot log on table_name;
drop snapshot log on table_name;
只要有这样的表存在,就一定是做过类似的操作,不是你做的也是别人做的
通过create materialized view log 创建的日志表.
物化视图日志表,那oracle内部是不是也用了物化视图啊,trace move的时候,发现oracle要for update这个表
select log, sysdate, sysdate+1/86400, flag from sys.mlog$ where mowner = :1 and master = :2 for update
END OF STMT
PARSE #2:c=0,e=60,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=4191619829
BINDS #2:
kkscoacd
Bind#0
oacdty=01 mxl=32(05) mxlc=00 mal=00 scl=00 pre=00
oacflg=18 fl2=0001 frm=01 csi=852 siz=32 off=0
kxsbbbfp=09204ec0 bln=32 avl=05 flg=05
value=”SCOTT”
Bind#1
oacdty=01 mxl=32(04) mxlc=00 mal=00 scl=00 pre=00
oacflg=18 fl2=0001 frm=01 csi=852 siz=32 off=0
kxsbbbfp=09204e94 bln=32 avl=04 flg=05
value=”TEST”