Oracle-查找发生死锁的表
我的Oracle数据库中出现死锁。当我同时从同一个表中删除两个实体时,就会发生死锁(ORA-00060)。我怎样才能知道锁是放在哪张桌子上的 到目前为止,我所做的是:Oracle-查找发生死锁的表,oracle,hibernate,Oracle,Hibernate,我的Oracle数据库中出现死锁。当我同时从同一个表中删除两个实体时,就会发生死锁(ORA-00060)。我怎样才能知道锁是放在哪张桌子上的 到目前为止,我所做的是: 我获得了一个包含死锁图的跟踪文件,因此问题1是:我是否可以使用死锁图中的资源名来标识设置了锁的表?怎么用?资源名称的格式如下:TM-000168D7-00000000-00000005-00000000 外键上缺少索引似乎是这种死锁最常见的来源,所以我检查了是否有一些缺少索引,但没有找到。但是,这个模式仍然非常复杂,所以我可以忽略
有什么提示或建议吗?有很多在线资源可以帮助您了解死锁 “TM”是一个事务或DML排队(锁),因此在提交之前,您可能有一个运行时间比它应该运行的时间长的事务 以下是查找未索引外键的脚本:
select cc.owner, cc.table_name, cc.column_name, cc.position
from dba_cons_columns cc
where
cc.owner not in ('SYS','SYSTEM')
and position is not null
minus
select i.index_owner, i.table_name, i.column_name, i.column_position
from dba_ind_columns i
where
i.index_owner not in ('SYS','SYSTEM')
我在某处读过他的文章-你找到与000168D7相关的专栏了吗?它有外键吗?