当前位置:Gxlcms > 数据库问题 > checkpoint(sqlserver数据库检查点)

checkpoint(sqlserver数据库检查点)

时间:2021-07-01 10:21:17 帮助过:3人阅读

关于检查点的解释:

  出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘。相反,数据库引擎定期发出对每个数据库的检查点命令。“检查点”将当前内存中已修改的页(称为“脏页”)和事务日志信息从内存写入磁盘,并记录有关事务日志的信息。 数据库引擎支持几种类型的检查点:自动、间接、手动和内部。下表总结了检查点类型。 1:自动 技术分享
数据库实例级别检查点设置为0标识检查点将会自动发生 2:手动设置后就会间接发生 技术分享

上图将检查点设置为2分钟发生一次,两分钟将会自动执行检查点. 3:手动 技术分享
后面的单位是秒,多少秒内自动尝试发生检查点. 4:内部:由各种服务器操作(如备份和数据库快照创建)发出,以确保磁盘映像与日志的当前状态匹配。 A:已经使用 ALTER DATABASE 添加或删除了数据库文件。 进行了数据库备份。 B:创建了数据库快照,不管 DBCC CHECK 是显式还是内部执行。 C:执行了需要关闭数据库的活动。例如,AUTO_CLOSE 设置为 ON 并且关闭了数据库的最后一个用户连接,或者执行了需要重新启动数据库的数据库选项更改。 D:通过停止 SQL Server (MSSQLSERVER) 服务停止了 SQL Server 实例。任一操作都会在 SQL Server 实例的每个数据库中生成一个检查点。 E:使 SQL Server 故障转移群集实例 (FCI) 脱机 当发生以上操作的时候,数据库检查点将会自动发生.     我们可以想象,当检查点频繁发生的时候,就会造成IO的读写频繁,这样不但不能够提高效率,相反还会降低,而且还会影响磁盘的寿命.所以检查点的机制还是很有作用的. 当检查点发生的时候,他会对sqlserver的缓冲区的所有脏页进行处理,写入磁盘文件,当然有一些修改的事物是没有commit的,但是还是会被写入到数据文件当中,发生IO写,所以说,这个机制其实就是把脏数据写入磁盘,而不管你的数据是有没有提交.未提交的数据就在后期会做UNDO将事物回滚,    

checkpoint(sqlserver数据库检查点)

标签:

人气教程排行