1

2 つの分割されたテーブルがあるとします。

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 インスタンスを実行している実際のサーバーにアクセスできないため、アラート ログを確認できません。Google は役に立たなかったので、いじってみたところ、ローカル インデックスに問題があるのではないかと考えました。必要な句を追加して、ターゲットにする必要があるパーティションの範囲を制限しようとしましたが、役に立ちませんでした。

table2.t1_id のローカル インデックスをグローバル インデックスに置き換えたところ、クエリが機能しました。

今私の質問: これは機能/バグですか? それとも、ローカル インデックスがどのように機能するかの論理的な結果ですか? インデックスを再作成して誤って修正したのは、まったく別の問題ですか?

Oracle バージョン: 11.2.0.2.0 - 64 ビット

4

0 に答える 0