古いOracleのチューニング
会社の仕事で、古いOracle7をCore2DuoのPCにインストールして動かした。
バッチ系の処理で、ファイルから読んだデータをOracleのテーブルに書き込むという処理があり、その処理を早くしたかったので、redoログファイルをサイズの大きいものに変えるという古典的な手法をやってみた。
古いOracleのredoログファイルのサイズはデフォルトで約200kバイトだが、5Mバイトのログファイルを追加して、200kのログを削除。
redoバッファもデフォルトよりかなり大きい64kバイトに設定。
これで、Pentium4+デフォルト設定の場合で15分かかっていた処理が、Core2Duo+チューニング後では約5分に短縮。
後日、処理時間短縮の大部分はアプリケーションソフトが早く動いた影響であり、Oracleのチューニングの影響は少なかった事がわかった。
5Mバイトのredoログファイルを追加するスクリプト
alter database add logfile ('ファイルのフルパス') size 5M;デフォルトのredoログファイルを削除するスクリプト
alter database drop logfile group グループ番号;削除するredoログファイルがカレントのときは、下記のコマンドでログスイッチを起す
alter system switch logfile;
ついでにロールバックセグメントの最大エクステントも拡張
alter rollback segment ロールバックセグメント名 offline;
alter rollback segment ロールバックセグメント名 storage(maxextents 1024);
alter rollback segment ロールバックセグメント名 online;