アプリ版:「スタンプのみでお礼する」機能のリリースについて

バッチ処理をするために、DB2の埋め込みSQLを使用していますが問題があります。

処理対象のデータが大量にあるのですが、カーソルのオープン処理で時間がかかってしまうため、時間内に終了することができません。

カーソルオープン処理を早くする方法がありましたら教えていただけますでしょうか。

ちなみに、
1.取得件数とオープン処理速度は全く関係がないように見えます。
2.インデックスを貼ってみましたが、変わりませんでした。


よろしくお願いいたします。

A 回答 (2件)

カーソルをOPENするという事は、SELECTを実行しているのに等しいので、OPENを速くしたいという事は、そのカーソルで定義しているSQL文の実行速度を速くするしかないですね。



ですので、対処方法としては通常のSQLをチューニングする方法と同じになります。

遅い理由が分からないのでしたら、まずは該当のSQLのEXPLAINを取得する事をおすすめします。(EXPLAINの方法が分からない場合は、参考URLの「EXPLAINアクセスプラン編」を読んでみてください)

> 1.取得件数とオープン処理速度は全く関係がないように見えます。

そうですね。何行FETCHするか?はSQLを実行したあとの話なのでOPENの速度には関係ないですね。


> 2.インデックスを貼ってみましたが、変わりませんでした。

そのインデックスが本当に使われているのかEXPLAINで確認された方がよいと思います。またRUNSTATSは実行されていますか?

参考URL:http://www-6.ibm.com/jp/software/data/developer/ …
    • good
    • 0
この回答へのお礼

返信が遅くなりました。

RUNSTATSは実行していたのですが、
EXPLAINで確認してみたところ、インデックスが正しくつかわれておりませんでした。

インデックスを正しく貼りなおしたら期待する速度が出せるようになりました。
ありがとうございました。

お礼日時:2005/06/13 17:17

直接の回答ではありませんが。


カーソルオープンで条件による抽出とソートを行うことがあるようです。
参考URL。

参考URL:http://www-6.ibm.com/jp/software/data/db2mag/200 …
    • good
    • 0
この回答へのお礼

返信が遅くなりすみません。

参考になりました。
ありがとうございました。

お礼日時:2005/06/13 17:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す