Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの設定 » データベース・オプション » データベース・オプションの概要 » アルファベット順のオプション・リスト

 

delayed_commits オプション [データベース]

COMMIT の後でデータベース・サーバからアプリケーションに制御が戻されるタイミングを決定します。

指定可能な値

On、Off

デフォルト

Off (ISO の COMMIT 動作に準拠)

スコープ

個々の接続または PUBLIC グループに設定できます。すぐに有効になります。

備考

On に設定すると、データベース・サーバは COMMIT のトランザクション・ログ・エントリがディスクに書き込まれるのを待たずに、直ちに COMMIT 文に応答します。Off に設定すると、アプリケーションは COMMIT がディスクに書き込まれるまで待たなければなりせん。

このオプションが On の場合、ログ・ページが満杯となったときと、delayed_commit_timeout オプションに設定された時間が経過したときのうち、いずれか早い時点でログがディスクに書き込まれます。トランザクションがコミットされた後であっても、データベース・サーバが COMMIT に応答してからページがディスクに書き込まれる前にシステム障害が発生すると、トランザクションが失われる可能性がわずかながらあります。delayed_commits を On に設定し、delayed_commit_timeout オプションを高い値にすると、応答時間は早くなりますが、リカバリ中にコミットされたトランザクションが失われるリスクが若干高くなります。

cooperative_commits と delayed_commits の両方を On に設定している場合、cooperative_commit_timeout オプションに設定された時間がページへの書き込みなしで経過すると、アプリケーションが (コミットが実行されたかのように) 再開されます。残りの時間 (delayed_commit_timeout の値から cooperative_commit_timeout の値を差し引いた長さ) は delayed_commits 間隔として使用され、その時間が経過すると、ページは満杯になっていなくてもディスクに書き込まれます。

参照