質問: pl/sqlの平行処理について pl/sqlで処理が長時間になるプログラムがあり、 そのプログラムを4回実行する必要があります。 時間短縮のために平行で処理ができるかネット等で調べたのですが、 どうもできそうにない(解決方法を見つけることができなかった)ので質問させていただきました。 複数のプロシージャを一つのメインプロシージャから平行して実行させることは、可能でしょうか。 oracleのバージョンは、 10.2.0.1.0 です。
回答: いくつか補足が必要です。 ・バッチ処理なのかリアルタイムなのか ・遅いプロシージャは1つ? ・それを現在4回シリアルに実行している? ・それを単純に1回のパラレル処理にして、業務要件は担保できる? 以下は、バッチと想定した場合の解です。 バッチであれば、その遅いプロシージャを単純に並行で動かすだけなら、同時間に4発動くようにスケジュールすればよいだけでは? oracleのjob管理でも可能ですし、windows系ならタスクスケジューラ、unix系ならcron。 それ以外で、jp1などの統合運用ツールを導入しているのであれば、それでもよいと思います。要するに現在の運用ポリシーに則った方法であれば何でもokです。 この場合、既に「メインプロシージャからシリアル4回呼び出し」で作りこんであるなら、メインプロシージャは不要になります。 それと、これはご質問に対する回答ではありませんが、「長時間になる」のは、仕方がない事なのか、チューニングの余地があるのか、を考慮すべきではないかと思います。 otnでチューニング関連のマニュアルをダウンロードできますが、興味があるなら、何かチューニング系の本を購入する事をお薦めします。