以文本方式查看主题

-  昂捷论坛  (http://enjoyit.com.cn/bbs/index.asp)
--  □-通用类  (http://enjoyit.com.cn/bbs/list.asp?boardid=27)
----  SQL Server中关于checkpoint使用说明  (http://enjoyit.com.cn/bbs/dispbbs.asp?boardid=27&id=8152)

--  作者:prcak47
--  发布时间:2011/10/9 14:19:59
--  SQL Server中关于checkpoint使用说明

SQL Server中关于checkpoint使用说明

在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中。 本文来介绍一下。

  在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中。

  其实在我们进行insert, update, delete时,数据并没有直接写入数据库对应的mdf文件中,而是写入了缓存里,这有点像电驴,因为过于频繁的写入会使磁盘的寿命大大减小。

图片点击可在新窗口打开查看

  从上图可以直观的看出。只有当发生checkpoint时,数据才会被写入mdf数据文件。

  checkpoint的语法为:

  CHECKPOINT [ checkpoint_duration ],其中checkpoint_duration 是个int类型的整数值且并且必须大于零,单位是秒,表示SQL Server 数据库引擎会在请求的持续时间内尝试执行检查点。如果省略该参数,SQL Server 数据库引擎将自动调整检查点持续时间,以便最大程度地降低对数据库应用程序性能的影响。

  导致CheckPoint检查点的事件:

  1.在数据库备份之前,数据库引擎会自动执行检查点,以便在备份中包含对数据库页的全部更改。

  2.日志的活动部分超出了服务器在 recovery interval 服务器配置选项中指定的时间内可以恢复的大小。

  3.日志的 70% 已满,并且数据库处于日志截断模式。

  当下列条件都为 TRUE 时,数据库就处于日志截断模式:数据库使用的是简单恢复模式,并且在执行上一条引用数据库的 BACKUP DATABASE 语句后,发生下列事件之一:

  在数据库中执行一项最小日志记录大容量复制操作或一条最条小日志记录的 WRITETEXT 语句。

  执行一个在数据库中添加或删除文件的 ALTER DATABASE 语句。

  4.停止服务器也会在服务器上的每个数据库中发出一个检查点命令。下列停止 SQL Server 的方法将为每个数据库执行检查点:

  使用 SQL Server 配置管理器。

  使用 SQL Server Management Studio。

  使用 SHUTDOWN 语句。

http://database.ctocio.com.cn/21/11507521.shtml

 

 


--  作者:prcak47
--  发布时间:2011/10/9 14:24:14
--  

有时候数据库很慢,但是cpu占用率和内存使用率不高,这很有可能是CheckPoint事件导致大量的写硬盘操作造成的

减少CheckPoint的方法可以注意上文中 导致CheckPoint检查点的事件 的第二和第三点。

确切的说,日志文件过大会导致CheckPoint事件频繁。另外数据库不能一直处于简单恢复模式。

 

因为在完整恢复模式下不能截断数据库日志,所以需要先将数据库置为简单恢复模式,但是截断数据库日志后要及时恢复为完整恢复模式

 

使用SQL Server Management Studio工具来查看或更改数据库的恢复模式,具体操作过程如下。

(1)打开SQL Server Management Studio并连接到数据库引擎服务器。

(2)在“对象资源管理器”窗口中,展开“数据库”节点。

(3)右击Practice JWGL数据库,在弹出的快捷菜单中选择“属性”命令,打开“数据库属性”对话框。

(4)选择“选项”选项,数据库的当前恢复模式显示在右侧详细信息的“恢复模式”列表框中,如图9-3所示。

(5)可以从“恢复模式”列表中,选择不同的模式来更改数据库的恢复模式。其中,可以选择“完整”、“大容量日志”或“简单”模式。

(6)单击“确定”按钮,即可完成查看或更改数据库的恢复模式的操作。

[此贴子已经被作者于2011-10-9 15:14:22编辑过]