CHECKPOINT (Transact-SQL)
在您当前连接到的 SQL Server 数据库中生成一个手动检查点。
注意 |
---|
有关不同类型的数据库检查点和常规检查点操作的信息,请参阅数据库检查点 (SQL Server)。 |
语法
CHECKPOINT [ checkpoint_duration ]
参数
- checkpoint_duration
以秒为单位指定手动检查点完成所需的时间。 如果指定 checkpoint_duration,则 SQL Server 数据库引擎会在请求的持续时间内尝试执行检查点。 checkpoint_duration 必须是一个数据类型为 int 的表达式,并且必须大于零。 如果省略该参数,数据库引擎将调整检查点持续时间,以便最大程度地降低对数据库应用程序性能的影响。 checkpoint_duration 是高级选项。
影响检查点操作持续时间的因素
通常,执行检查点操作所需的时间会随着该操作必须写入的脏页数的增加而增加。 默认情况下,为最大程度地降低对其他应用程序性能的影响,SQL Server 将调整检查点操作执行写入的频率。 降低写频率将增加完成检查点操作所需的时间。 SQL Server 对手动检查点使用此策略,除非在 CHECKPOINT 命令中指定了 checkpoint_duration 值。
使用 checkpoint_duration 时对性能所造成的影响取决于脏页数、系统中的活动以及指定的实际持续时间。 例如,如果正常情况下完成检查点操作需要 120 秒,则将 checkpoint_duration 指定为 45 秒时,SQL Server 用于检查点的资源将比默认情况下分配的资源多。 反之,将 checkpoint_duration 指定为 180 秒时,将导致 SQL Server 分配的资源将比默认情况下分配的资源少。 总之,checkpoint_duration 较短时,会增加用于检查点的资源,而 checkpoint_duration 较长时,会减少用于检查点的资源。 SQL Server 总是尽可能地完成检查点操作,并且操作完成后,CHECKPOINT 语句将立即返回。 因此,完成检查点的时间有时比指定的持续时间短,有时则比指定的持续时间长。
安全性
权限
CHECKPOINT 权限默认授予 sysadmin 固定服务器角色以及 db_owner 和 db_backupoperator 固定数据库角色的成员,这些权限不可转让。