連載
» 2005年06月21日 00時00分 公開

Oracle SQLチューニング講座(13):REDOログ・ファイルの設定で更新処理をチューニング (2/3)

[倉田寛正,株式会社アゲハ]

オンラインREDOログ・ファイルの最適値を求める

 それでは、オンラインREDOログ・ファイルの設定が適切でない場合、更新処理のパフォーマンスにどのような影響を与えるのか、実際に例を挙げて見てみましょう。以下の例は、オンラインREDOログ・ファイルのサイズが100Mbytesの環境と1Mbytesの環境で、同一の更新処理を実行し、処理時間と実行統計を取得した結果になります。

図2 オンラインREDOログ・ファイルサイズが100Mbytesで4グループの場合 図2 オンラインREDOログ・ファイルサイズが100Mbytesで4グループの場合
図3 オンラインREDOログ・ファイルサイズが1Mbytesで4グループの場合 図3 オンラインREDOログ・ファイルサイズが1Mbytesで4グループの場合

 読み取りブロック数、発生したREDO SIZEはほぼ等しいにもかかわらず、オンラインREDOログ・ファイルサイズが1Mbytesの場合は、倍近くの時間を要しています。この差は、オンラインREDOログ・ファイルサイズが小さすぎることにより引き起こされています。ログ・スイッチ時のチェックポイント待機状況は、動的パフォーマンスビュー「V$SESSION_EVENT」により確認することができます。オンラインREDOログ・ファイルサイズが1Mbytesの場合の確認結果が図4になります。

図4 チェックポイント完了までの待機時間の確認方法 図4 チェックポイント完了までの待機時間の確認方法

 図4の「TIME_WAITED」(単位1/100秒)を確認することで、チェックポイントの完了までに271.46秒の待機が発生していたことが分かります。

 上記の結果からも分かるように、大量更新処理のパフォーマンスには、オンラインREDOログ・ファイルのサイズが非常に重要となります。オンラインREDOログ・ファイルの適切なサイズはシステムによって異なりますので、ログ・スイッチの回数が1時間に2〜3回以下に収まることを目安にサイズを調整していきます。一般的なシステムでは、オンラインREDOログ・ファイルのサイズは、100Mbytes〜数Gbytes程度となります。

 なお、オンラインREDOログ・ファイルのサイズを大きくした場合、以下のような影響が発生しますので、パフォーマンスとそのほかの影響のバランスを考慮したうえで、サイズを決定してください。

  • 極端に大きなオンラインREDOログ・ファイルを作成し、初期化パラメータの設定(「FAST_START_MTTR_TARGET」に大きな値を設定する、「LOG_CHECKPOINT_INTERVAL」を「0」に設定するなど)によりチェックポイントの発生頻度を低くしてしまうと、障害発生時のクラッシュ・リカバリにより多くの時間を必要としてしまう。
  • 万一、カレントのオンラインREDOログ・ファイルが障害を受けた場合に消失するトランザクション量が多くなる(アーカイブ・ログモードで運用時のみ。アーカイブ・ログモードでデータベースを運用している場合、アーカイブ処理はREDOログ・ファイルが満杯にならないと発生しないため)。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。