Database側で主キー、外部キーによるリレーションをテーブル間に構成し、DB Adapterを再作成しましたが、やはり同じ問題が発生しました。その問題とは、ユーザがDB Adapterの「選択条件の定義」(Define Selection Criteria)のページでSQLを編集すると発生します。この問題を回避する方法を記載しておきます。
- <DBAdapter名>-or-mappings.xmlファイルを開く
- <batch-reading>true</batch-reading>を探し、trueをfalseに変更する
- DB Adapterウィザードを再度開き、「選択条件の定義」ページまで進み、where句を定義する。
- 「外部結合を使用してマスター表とディテール表の両方の単一結果セットを返す」のチェックボックスをチェックする。これによりSQLが再作成される。
- この新しいSQL文のwhere句を変更する。From句以前を変更しないように注意すること。
- 「終了」をクリックして、プロジェクトをデプロイする。
- アプリケーションをテストする。
これを回避するため、バッチ読み込みをfalseに設定しました。
[訳注]この回避策はマニュアルにも記載があります。
Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド 11g リリース1(11.1.1)複数の表の問合せ
http://download.oracle.com/docs/cd/E16340_01/integration.1111/b55918/adptr_db.htm#BDCEJFIB
原文はこちら。
http://blogs.oracle.com/ajaysharma/entry/db_adapter_performance_issue_having_1-n_relations_table
0 件のコメント:
コメントを投稿