Oracle表上的共享索引会导致死锁吗?

时间:2017-08-08 13:29:28

标签: oracle hibernate database-deadlocks

我知道子表中未编制索引的外键可能会导致ORA-00060:死锁。同样,共享索引也可能导致死锁。

我在以下场景中有共享索引,

class TableA {
int tableAId;
List<TableB> listOfTableB;
}

class TableB {
String name;
}

相关的hibernate映射(部分),

<list cascade="all,delete-orphan" name="listOfTableB" table="TableB">
        <key column="tableAId" />
        <index column="idx"/>
        <composite-element class="TableB">
            <property name="name" column="name" not-null="true" />
        </composite-element>
</list>

使用上面的代码,在DB中,它为TableB中的'tableAId'和'idx'创建一个共享索引(同名索引)。

在这种情况下,我是否应该单独为'tableAId'添加单独的索引以及现有的共享索引以避免死锁?或者现有的索引本身就足够了?

1 个答案:

答案 0 :(得分:3)

如果你有一个tableAId, idx的索引,那么单独tableAid上的索引可能(几乎总是)没有任何好处。这没有死锁的危险。