zoukankan      html  css  js  c++  java
  • checkpoint(sqlserver数据库检查点)

    关于检查点的解释:

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

    上图将检查点设置为2分钟发生一次,两分钟将会自动执行检查点.
    3:手动
    3:sqlserver数据库检查点
    后面的单位是秒,多少秒内自动尝试发生检查点.
    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将事物回滚,
     
     
  • 相关阅读:
    在初次安vs2008时设置的为C#现在怎么将其改为其他类型的界面
    CREATEMUTEX
    ISO 18000-6c 访问标签--应用程序访问操作ISO 18000-6C标签的方法
    虚函数的特性
    关于命名空间
    ubuntu 卸载/安装 redis
    【分享】推荐一些不错的计算机书籍
    [转]十款提高开发效率的PHP编码工具
    当当网
    Yii框架第一步-- 安装
  • 原文地址:https://www.cnblogs.com/shengdimaya/p/5403928.html
Copyright © 2011-2022 走看看