Checkpoints

A checkpoint is a point at which all dirty pages are written to disk and it therefore represents a known consistent state of the database on disk. Following a checkpoint, the contents of the checkpoint log are deleted. The empty checkpoint log pages remain in the checkpoint log within the current session and can be reused for new checkpoint log data. As the checkpoint log increases in size, so does the database file.

At a checkpoint, all the data in the database is held on disk in the database file. The information in the database file matches that in the transaction log. During recovery, the database is first recovered to the most recent checkpoint, and then changes since that checkpoint are applied.

At the end of each session, a history of the checkpoint log usage is maintained in the database and is used to determine an appropriate size for the checkpoint log for the next session.

The database server can initiate a checkpoint and perform other operations while the checkpoint takes place. However, if a checkpoint is already in progress, then any statement that triggers a new checkpoint must wait for the current checkpoint to finish before it can be executed.

 Statements that trigger implicit or explicit checkpoints
 See also