- PR -

外部結合を使用せずに同様の結果を得たい

1
投稿者投稿内容
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 2006-04-07 17:22
Aテーブルに存在しなくともBテーブルから値を取得したいため,
外部結合を使用していました。

しかし,対象のデータ件数が多い場合,
それではパフォーマンスに問題があったため,他の手法を模索しています。

インラインビューなどを用いる事によって解決可能でしょうか。
ご教授お願い致します。

現在外部結合にて問い合わせているSQLを以下に記述します。
SELECT * FROM
B_TEL_CHK_AQR b, A_TEL_CHK_AQR a
WHERE b.TEL_NO = '0774999112' AND b.TEL_NO = a.TEL_NO(+)








ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-04-07 18:12
原因は外部結合じゃなくて件数が多いことだから、ナニをやっても同じことだと思うが。
同じことをやるわけだし。
どう
会議室デビュー日: 2006/04/07
投稿数: 2
投稿日時: 2006-04-07 18:33
どんな環境か良く分かりませんが、
a と b テーブルにはTEL_NOでIndexを設定すると、
少し効果があると思います。

又、データがかなり多い場合、TABLESPACEで管理する
必要がなってくると思います。

具体的良く分からないが、参考まで
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 2006-04-07 18:51
ご返信誠にありがとうございます。
申し訳ありません。環境の説明が抜けていました。

Aテーブルの件数:約3000万件
Bテーブルの件数:約3000万件
oracle9i
IBMwebsphereサーバ

以上です。
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 2006-04-10 14:56
解決しました。お騒がせしました。

結論は,ぶさいくろうの仰る通り結局何をやっても
パフォーマンス的には変わりないということになり,
AとBテーブルのデータを結合せずに各々取得し,
Javaのソースコードで対応する方針にしました。

私の訳の分からぬ質問にお答え下さいまして,
誠にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)