goo blog サービス終了のお知らせ 

お散歩Linux

のんびりぷらぷら寄り道しながらLinuxでお散歩。

ターゲットジョイン

2004-04-01 21:19:07 | データウェアハウス
このカテゴリーを使うとは思っていませんでしたが、今日は(今日だけかも)データウェアハウスの話を少しだけ。

きのうから社内のデータウェアハウスのレスポンスが極端に悪くなり、終わらないセッションがたまりすぎると、まったく結果が返って来なくなる状態が頻繁に起きるようになっていました。
月末で、利用する人が多いせいだろうか、社員が急にデータ活用に目覚めたのだろうか、そうではなくて単純にサーバの調子が悪いのか、データベースがどこかおかしくなっているのだろうか…
いろんなことを考えて、いくつか試してみたけれど、原因がわからないままサービスの再起動を繰り返していました。

今日になって、終わらなくなるセッションではいくつか共通するSQL文が流れていることに気がつきました。問題となるSQL文をRed Brickのset stats info;をつけて調べると、ターゲットジョインが使われていること、本来ならかかるはずがないくらい、結果が出るのに時間がかかって(あるいはぜんぜん結果が返ってこなくなって)いることがわかりました。
そこで、思い切ってターゲットジョインで使われている、あるターゲットインデックスを削除してみました。すると、うれしいことに、SQL文は、今までどおりきちんと結果を返し始めました。さっきまでターゲットジョインが使われていたSQL文を試すと、今度はスタージョインで、一瞬で結果が返りました。ああよかった...

Red Brickでは、スタージョインと、ターゲットジョイン、そのほかの検索で、どの方法がいいかを自動的に判別して最適な方法で結果を返してくれるはずなのですが、どうしてターゲットジョインが選ばれるようになってしまったのか、わかりません。このターゲットインデックスは、2年くらい前に作ったもので、たぶん、おとといくらいまではうまく選択ができていたと思うのですが、何かの要因で、最適ではないものが選ばれるようになってしまっていたのでしょうか。

とにかく、嵐のようなセッションのたまり方がおさまって、ほんとうにほっとしました。
Red Brickのスタージョインとターゲットジョインについて、説明されているページ

http://www-6.ibm.com/jp/software/data/developer/library/techdoc/star.html

マニュアルもそうなのですが、このページも私にはちょっと難しいみたいです。