在 sql server中有一个非常重要的命令就是checkPoint, 它主要作用是把缓存中的数据写入mdf文件。其实在我们进行insert\update\delete 时,数据并没有直接写入数据库对应的mdf文件 中,而是写入缓存里,
从上图可以直观的看出。只有当发生checkpoint时,数据才会被写入mdf数据文件。
checkpoint 语法为:checkpoint【checkpoint_duration】,其中checkpoint_duration 是个int类型的整数值并且必须大于0,单位是秒,标识sql server 数据库引擎会在请求的持续时间内尝试执行检查点。如果省略该参数,sql server数据库引擎将自动调整检查点持续时间,以便最大程度地降低对数据库应用程序性能的影响。
导致checkpoint检查点的事件:
1. 在数据库备份之前,数据库引擎会自动执行检查点,以便在备份中包含对数据库页的全部更改。
2.日志的活动部分超出了服务器在recovery interval 服务器配置选项中指定的时间内可以恢复的大小。
3. 日志的70%已满,并且数据库处于日志截断模式。
当下列条件都为true时,数据库就处于日志截断模式: 是巨款u使用的是最简单的恢复模式,并且在执行上一条引用数据库的backup database 语句后,发生下列事件之一:
在数据库中执行一项最小日志记录大容量赋值操作或一条最小日志记录的writetext 语句。
执行一个数据库中添加或删除文件的alter database 语句。
4. 停止服务器也会在服务器上的每个数据库中发出一个检查点命令。下列停止sql server 的方法将每个数据库执行检查点:
使用sql srver 配置管理器。
使用sql server managerment staudio。
使用shutdown 语句