Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
コミットがいつディスクに書き込まれるかを制御します。
バージョン 11 の時点で、コミット動作が自動的にチューニングされるためこのオプション設定は無視されます。
On、Off
On
個別の接続または PUBLIC に対して設定できます。PUBLIC または別のユーザ/ロールに対してこのオプションを設定するには SET ANY PUBLIC OPTION システム権限が必要です。すぐに有効になります。
cooperative_commits を Off に設定した場合、COMMIT はデータベースサーバで受信されたときにディスクに書き込まれ、その後アプリケーションは継続が許可されます。
cooperative_commits を On (デフォルト) に設定し、他にアクティブな接続がある場合は、データベースサーバは COMMIT をすぐにはディスクに書き込みません。アプリケーションは cooperative_commit_timeout オプションで設定した最大長になるまで、他にそのページに含めるものがないか待ってから、COMMIT をディスクに書き込みます。
cooperative_commits を On に設定し、cooperative_commit_timeout の設定を大きくすると、ディスク I/O の数が減少することによってデータベースサーバの全体的なスループットが向上しますが、各接続のターンアラウンドタイムが長くなります。
cooperative_commits と delayed_commits の両方を On に設定している場合、cooperative_commit_timeout に設定された時間がページの書き込みなしで経過すると、アプリケーションが (コミットが実行されたかのように) 再開され、残りの時間 (delayed_commit_timeout の値から cooperative_commit_timeout の値を差し引いた長さ) は delayed_commits 間隔として使用されます。その後、ページは満杯になっていなくてもディスクに書き込まれます。