ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Asakusa Framework 0.9.0のOracleダイレクトパスインサート

2016-12-09 00:00:00 | PG(分散処理)

Asakusa Framework Advent Calendar 2016の9日目です。
今日は、2016/12/6にリリースされたAsakusaFW 0.9.0のWindGateのデータベース接続時の最適化オプションについてです。

AsakusaFWはWindGate JDBCでRDBアクセスが出来ます。
WindGate JDBCはどのRDBMSでも使えるようにする為、標準的なSQLのみでDBアクセスするようになっています。

が、今回、Oracle11gのダイレクト・パス・インサートを使うオプションが追加になりました。
以下のような設定を行うと、INSERT文にAPPEND_VALUESヒント(/*+ APPEND_VALUES */)が追加されるそうです。(今はOracle DBを持ってないので試せてないです^^;)

  • WindGateのプロファイルに「resource.jdbc.optimizations=ORACLE_DIRPATH」を指定する
  • ExporterクラスでgetOptionsメソッドをオーバーライドしてOption.ORACLE_DIRPATHを返すようにする

ただ、APPEND_VALUESでネットを検索してみたら、使いどころを間違うと逆にパフォーマンスが劣化することがあるようですね。このオプションを付けたり外したりして試してみるのが良さそうです。
(AsakusaFWでは基本的にある程度大量のデータをINSERTすることになるので、たぶんダイレクト・パス・インサートの方が速いのだろうとは思いますが) 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする