delayed_commits option [database]

Determines when the database server returns control to an application following a COMMIT.

Allowed values

On, Off

Default

Off (this corresponds to ISO COMMIT behavior)

Scope

Can be set for an individual connection or for the PUBLIC group. Takes effect immediately.

Remarks

When set to On, the database server replies to a COMMIT statement immediately instead of waiting until the transaction log entry for the COMMIT has been written to disk. When set to Off, the application must wait until the COMMIT is written to disk.

When this option is On, the log is written to disk when the log page is full or according to the delayed_commit_timeout option setting, whichever is first. There is a slight chance that a transaction may be lost even though committed if a system failure occurs after the database server replies to a COMMIT, but before the page is written to disk. Setting delayed_commits to On, and the delayed_commit_timeout option to a high value, promotes a quick response time at the slight risk of losing a committed transaction during recovery.

If both cooperative_commits and delayed_commits are set to On, and if the cooperative_commit_timeout interval passes without the pages getting written, the application is resumed (as if the commit had worked), and the remaining interval (delayed_commit_timeout - cooperative_commit_timeout) is used as a delayed_commits interval after which the pages will be written, even if they are not full.

See also