catch-img

COMMIT WRITE - 日本エクセム株式会社 Oracleパラメータ


目次[非表示]

  1. 1.基本情報
    1. 1.1.Parameter情報
    2. 1.2.説明
  2. 2.注意
    1. 2.1.COMMIT_WRITEとOLTP/ DSS
    2. 2.2.PL/SQLのAsynchronous Commit
  3. 3.関連情報

基本情報

Parameter情報

Syntax:COMMIT_WRITE = {IMMEDIATE | BATCH},{WAIT |NOWAIT}
Default:IMMEDIATE, WAIT
設定方法:Parameter File
     ALTER SYSTEM SET COMMIT_WRITE = BATCH, NOWAIT
     ALTER SESSION SET COMMIT_WRITE = BATCH, NOWAIT
     COMMIT WRITE BATCH NOWAIT
サポート : 10gR2


説明

 TransactionのCommitの実行時にRedo Writeを実行する方法を決定します。ユーザーがCommitを実行すると、OracleはRedo Bufferの変更履歴をRedo Logに即座に(IMMEDIATE)記録し、実際のRedo Logに記録されるまで待ちます(WAIT)。この実行方法は、ユーザーによるデータの変更履歴がRedo Logに記録されて事後Recoveryに使用することがあることを100%保証するためです。 COMMIT_WRITEパラメータを使用すると、これらのRedo Log記録方式を変更することができます。可能な組み合わせは、以下の通りです。

・IMMEDIATE + WAIT:基本方式でRedo Writeをすぐに要求して記録が終わるまで待ちます。
・IMMEDIATE + NOWAIT:要求はすぐに送信され、記録が終わるのを待たずに、ユーザーに制御を渡します。
・BATCH + WAIT:複数のRedo Write要求を集めて一度に要求し、記録が終わるまで待ます。
・BATCH + NOWAIT:複数のRedo Write要求を集めて一度に要求し、記録が終わるのを待たずに、ユーザーに制御を渡します。


注意

COMMIT_WRITEとOLTP/ DSS

 OLTP環境では、COMMIT_WRITEパラメータを変更してはいけません。BATCHやNOWAITモードのCommitでRedo Logにデータが正確に保存される保証がないため、異常終了時のデータの整合性を保証することはできないのです。

 DSS環境では、データの細かい整合性が不要な場合が多いため、パフォーマンスを向上させるために、このパラメータを積極的に活用することができます。


PL/SQLのAsynchronous Commit

 PL/SQLブロック内のCommit要求はまるでBATCH、NOWAITモードのCOMMIT_WRITEパラメータを使用するのと同じ効果があります。これAsynchronous Commitと呼びます。したがってバッチジョブを処理する場合には、PL/SQLを使用することが性能面で有利です。


関連情報

1. log file sync待機イベント

CONTACT

他社に頼らず自社でデータベースを監視・運用をしませんか?
MaxGaugeがサポートします

お役立ち資料は
こちらから

不明点がある方は、
こちらからお問い合わせください

お電話でのお問い合わせはこちら

平日 10時~18時

人気記事ランキング

タグ一覧