虚位以待(AD)
虚位以待(AD)
首页 > 数据库 > Oracle数据库 > ORACLE10.2.0.4物化视图死锁问题处理手记

ORACLE10.2.0.4物化视图死锁问题处理手记
类别:Oracle数据库   作者:码皇   来源:<a href="http://blog.csdn.net/yiting888" target="_blank" rel="nofollow&q   点击:

ORACLE10 2 0 4物化视图死锁问题处理手记。

ORACLE10.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 vlockedobjectl,dbaobjectso,vsession s

where l.object_id = o.object_id and l.session_id=s.sid;

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

无奈,只能删除,

drop materialized view log on MEMBER_ORDER;

再删除物化视图。

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

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

相关热词搜索: