ORACLE 10.2.0.4 物化视图 死锁问题处理手记

物化视图查询相关
select * from user_mviews;
SELECT * FROM user_mview_refresh_times;
SELECT * FROM DBA_MVIEW_LOGS;

建立物化视图
CREATE MATERIALIZED VIEW LOG ON MEMBER_ORDER;

建立时是很快的,然后在远端建立同步物化视图
CREATE MATERIALIZED VIEW MV_SPMEMBERORDER
REFRESH FAST
AS
SELECT * FROM member_order@remote;

问题来了

因为表的数据量很大,你会发现如果对这个表进行大量读写的时候,会把整个表都会锁住,正好此时有个大存储过程在里面执行,把整个应用全部锁住了。

停止应用,你查询锁定的情况

select object_name,machine,s.sid,s.serial#,s.TYPE,l.LOCKED_MODE,O.,l.
from v lockedobjectl,dbaobjectso,v session s
where l.object_id = o.object_id and l.session_id=s.sid;

发现已经没有锁定,但是只要一打开应用,系统马上锁住。

无奈,只能删除,
drop materialized view log on MEMBER_ORDER;
再删除物化视图。

但是,问题仍然存在,是否是表空间的问题,加上,还是有问题,起初以为是应用问题,对应用的代码进行优化,仍然无法解决死锁的问题。

此时,发现有个存储过程还在跑,因为这个过程,不会对应用系统的表进行锁定,他只是读写自己的表,按理不会死锁的。 没有办法,先把这个存储过程结束了,试试看。。。竟然好了。死锁解除了。 没有想明白是怎么一回事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值