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 ビット