赤色と80スープラと音楽とプー

僕の好きな赤色と80スープラと音楽とプーさんについて書いてます。その他、日々の楽しみ、悩み、驚きなど赤裸々に書きます。

Oracleのテンポラリテーブル、使える。

2017-03-08 21:30:24 | お仕事
僕は社内SEなのですが、今メインで取り掛かっている仕事で、バッチの開発をやっています。
社内で動いている各システムから、また一部は手でデータを作成してこれらを元データにバッチを回すのですが、パフォーマンスが出ないことが発覚したのが約1ヶ月前。このままでは一日以上バッチを回しても終わらない試算だったので対応案を考えました。

バッチ自体は考え方はシンプルで、SQLを順々に実行して結果を中間テーブルに突っ込んで、中間テーブルを元データに次のSQLを実行して…を繰り返す設計にしていました。ところがSQLそのものの数が多いことがわざわいして前述の課題が。
SQLの数は減らせないのでデータベースであるOracleのテンポラリテーブルとマルチスレッドの処理を組み合わせてやれば「できる」ことが調査で分かったので、あとは開発者を信じお任せしました。

テンポラリテーブルはトランザクションを終了(コミットまたはロールバック)するとデータが消える、またはセッションを切るとデータが消える性格があります。どちらのモードとするかをテーブル作成時に指定します。
決して新しい技術ではなくこれまで必要にならなかったから使用しなかっただけで、使いようによっては有効だということが分かりました。

プロジェクトは大詰めに入っています。
稼働までに準備があるのでまだ安心できませんが、やるだけのことはやると年明けに誓ったのでがんばる所存です。
成功して美味しい酒を飲むために…。

最新の画像もっと見る

コメントを投稿