L
o
a
d
i
n
g
.
.
.

ホーム

お知らせ

製品・ソリューション

サービス

導入事例・パートナー

EXEM Academy・ブログ

会社情報

採用情報

2018.05.16

COMMIT WRITE

目次

  • 1. 基本情報
  • 2. 注意
  • 3. 関連情報


  • 基本情報


    パラメータ情報

    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待機イベント
    

PHP Code Snippets Powered By : XYZScripts.com