关于检查点的解释:

 
出于性能方面的考虑,数据库引擎对内存(缓冲区缓存)中的数据库页进行修改,但在每次更改后不将这些页写入磁盘。相反,数据库引擎定期发出对每个数据库的检查点命令。“检查点”将当前内存中已修改的页(称为“脏页”)和事务日志信息从内存写入磁盘,并记录有关事务日志的信息。
数据库引擎支持几种类型的检查点:自动、间接、手动和内部。下表总结了检查点类型。
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数据库检查点)的更多相关文章

  1. (转)对SQLSERVER数据库事务日志的疑问

    本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/06/10/3130856.html 对SQLSERVER数据库事务日志的疑问 摸不透SQLS ...

  2. SQLSERVER数据库死锁与优化杂谈

    死锁杂谈 当数据库死锁时,SqlServer会释放一个优先级较低的锁,让另一个事务运行:所以,即时去捕捉数据库死锁,是挺不容易的. 如果,数据库死锁比较长时间,那么死锁是可以被捕捉的. 可以用SqlS ...

  3. SQLSERVER数据库备份操作和还原操作做了什么

    SQLSERVER数据库备份操作和还原操作做了什么 看了这篇文章:还原/备份时做了些什么 自己也测试了一下,下面说的错误日志指的是SQLSERVER ERRORLOG 一般在C:\Program Fi ...

  4. PowerDesigner从SqlServer数据库中导入实体模型

    PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文  http://blog.csdn.net/sxycxwb/art ...

  5. 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...

  6. JAVA使用JDBC技术操作SqlServer数据库执行存储过程

    Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...

  7. SQLServer数据库监控代码

    SQLServer数据库监控代码: creation_time, total_worker_time, last_worker_time, max_worker_time, min_worker_ti ...

  8. SQLServer数据库转换成MySQL数据库

    由于工作需要,系统原先的SQLServer数据库要转换成MYSQL数据库,所以这两天就一直在查阅这方面的资料.最开始,我尝试从SQLServer中导出SQL文件,然后导入到MYSQL数据库中,发现报错 ...

  9. ASP.net分别连接SQLserver数据库与连接Access数据库精英版

    -------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...

随机推荐

  1. POJ_1703 Find them, Catch them 【并查集】

    一.题面 POJ1703 二.分析 需要将并查集与矢量法则相结合.par数组用以记录父节点,rank用以记录与父节点的关系.如题意,有两种关系,设定0是属于同一个帮派,1表示不属于同一个帮派. 运用并 ...

  2. [转] javascript中的变量和垃圾回收

    [From] http://www.imooc.com/article/4585 基本类型和引用类型 js中的变量虽然不区分类型,但是实际上Ecmascript包含两种类型,基本类型和引用类型. 基本 ...

  3. C语言中的输入方式

    在c语言中,有gets().scanf().getchar()等输入方式,但是不同的方式处理的方式不同. scanf()读取时遇见tab.space.enter时会结束读取,不会舍弃最后的回车符(即回 ...

  4. SpringFox

    简介     http://projects.spring.io/spring-framework null

  5. MySql——Explain执行计划详解

    使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执行计划包含的信息 其中最重要的字段为:i ...

  6. 工作采坑札记:4. Hadoop获取InputSplit文件信息

    1. 场景 基于客户的数据处理需求,客户分发诸多小数据文件,文件每行代表一条记录信息,且每个文件以"类型_yyyyMMdd_批次号"命名.由于同一条记录可能存在于多个文件中,且处于 ...

  7. javascript遍历表

    定义表结构 1. 通过id遍历 <html> <body> <table id="tb" border="1"> <t ...

  8. C语言中extern的用法--转

    http://blog.sina.com.cn/s/blog_52deb9d50100ml6y.html 在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的, ...

  9. css 清除float的方法

    首先我们要理解这个flaot 为什么要清除,作为小白来说直接颠覆了我之前学的内容,因为之前学的东西虽然碰到float后,脱离文档流后给兄弟元素或者父元素造成影响,但是都是通过option来定位 要么绝 ...

  10. Django 实现组合条件搜索、jsonp跨域请求

    1.类似于汽车之家的条件组合搜索那样 代码:http://pan.baidu.com/s/1nu7vZYD 2.jsonp实现跨域请求(在自己网页自动调用其他网站的接口,并将获取的数据呈现在自己网页上 ...