强制将当前数据库的所有脏页写到磁盘上。脏页是指在输入到高速缓冲存储器后被修改的数据或日志页,但这些修改还没有写到磁盘上。有关日志截断的更多信息,请参见截断事务日志。
语法
CHECKPOINT
注释
CHECKPOINT 语句可在后来的恢复中节省时间,方法是创建一个点以确保所有对数据和日志页的修改都写到磁盘上。
检查点也会在下列情况中出现:
- 当用 ALTER DATABASE 更改了某数据库选项时。检查点在更改选项的数据库中执行。
- 当服务器停止时,在服务器上的每个数据库中执行检查点。停止每个数据库 Microsoft® SQL Server™ 2000 检查点的方法是:
- 使用 SQL Server 服务管理器。
- 使用 SQL Server 企业管理器。
- 使用 SHUTDOWN 语句。
- 在命令提示行使用 Windows NT 命令 net stop mssqlserver。
- 使用 Windows NT 控制面板中的 services 图标,选择 mssqlserver 服务,并单击"停止"按钮。
SHUTDOWN WITH NOWAIT 语句关闭 SQL Server 而不在每个数据库中执行检查点。这可能会导致后来重新启动以恢复服务器上的数据库的时间比通常时间长。
SQL Server 2000 还在任何至少发生下面两种情况的数据库上自动执行检查点:
- 日志的活动部分超出了在 recovery interval 服务器配置选项中指定的时间总量中服务器可以恢复的大小。
- 如果数据库处于日志截断模式并且日志的百分之七十已满。
当下列条件都属实时,数据库就处于日志截断模式:
- 数据库使用的是简单恢复模式。
- 当最后一个引用数据库的 BACKUP DATABASE 语句被执行后,下面事件中的某一个将会发生:
- 引用数据库的 BACKUP LOG 语句将在带有 NO_LOG 或 TRUNCATE_ONLY 子句的情况下被执行。
- 在数据库中执行一个无日志记录的操作,例如执行一个无日志记录的大容量复制操作或一个无日志记录的 WRITETEXT 语句。
- 执行一个在数据库中添加或删除文件的 ALTER DATABASE 语句。
权限
CHECKPOINT 权限默认授予 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员且不可转让。