1

假设您有两个分区表:

table1:
    - id (primary key = global index)
    - created (timestamp of creation)

table2:
    - id (primary key = global index)
    - t1_id (foreign key to table1.id, a local index was created for this field)

分区在 table1.created 上完成,而 table2 通过 table2.t1_id 上的引用进行分区。

现在如果我运行这个查询:

select * from table1 t1 join table2 t2 on t1.id=t2.t1_id

我得到了一个非常棒的错误:ORA-03113

我无权访问运行 oracle 实例的实际服务器,因此无法检查警报日志。谷歌没有发现任何有用的东西,所以经过一番摆弄后,我认为本地索引可能是问题所在。我尝试添加必要的子句来限制应该定位的分区范围,但无济于事。

我用全局索引替换了 table2.t1_id 上的本地索引并且查询有效。

现在我的问题是:这是一个功能/错误吗?还是本地索引如何工作的逻辑结果?完全是我通过重新创建索引意外解决的其他问题吗?

Oracle 版本:11.2.0.2.0 - 64 位

4

0 回答 0