关于检查点的解释:

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

    可以将类B声明在另一个类中.在另一个类A中声明的类B被称为嵌套类(nested class). 类A的成员函数可以创建和使用嵌套类B的对象. 当且仅当声明为公有部分时,才能在类A的外面使用嵌套类.而且 ...

  2. bzoj2190 仪仗队

    题目传送门 思路: 哪些点能被人看到,其实就是哪些点不会被其他点挡住,只要顶点的坐标互质就可以了,互质用欧拉函数算.特殊考虑一下n=1和0的情况. 欧拉函数,Φ(x)=x(1-1/p1)(1-1/p2 ...

  3. Oracle utl_file_dir参数详解

    1 UTL_FILE_DIR参数定义 UTL_FILE_DIR是Oracle中的一个"静态参数",可以设置一个或多个路径.用于在PL/SQL中进行文件I/O操作(可以用utl_fi ...

  4. panda强化练习2

    In [1]: import pandas as pd import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sa ...

  5. mysql允许数据库远程连接

    2018-11-06 进入数据库 mysql -uroou(用户) -p123456(密码) 授权某个user可远程访问 grant all privileges on *.* to ' with g ...

  6. resty-limit-multiple-strategy.lua

    --[[ 执行过载限流策略 --]] -- 当执行限流时,Nginx 返回的状态码 err_code = local limit_config = { user_limit = {rate = , b ...

  7. 里氏替换原则(Liskov Substitution Principle) LSP

    using System; using System.Collections.Generic; using System.Text; namespace LiskovSubstitutionPrinc ...

  8. Single Vendor Project in OpenStack

    1.astara: ptl: name: Ryan Petrello irc: ryanpetrello email: ryan.petrello@dreamhost.com irc-channel: ...

  9. Beam编程系列之Python SDK Quickstart(官网的推荐步骤)

    不多说,直接上干货! https://beam.apache.org/get-started/quickstart-py/ Beam编程系列之Java SDK Quickstart(官网的推荐步骤)

  10. js- 引用和复制(传值和传址)

    js- 引用和复制(传值和传址) 好像一般很少人讲到js中的引用和复制,不过弄清楚这个概念可以帮助理解很多东西 先讲一下很基础的东西,看看js中几种数据类型分别传的什么引用:对象.数组.函数复制:数字 ...