SQL Server中In-Flight日志究竟是多少

在SQL Server中,利用日志的WAL来保证关系数据库的持久性,但由于硬盘的特性,不可能使得每生成一条日志,就 直接向磁盘写一次,因此日志会被缓存起来,到一定数据量才会写入磁盘。这部分已经生成的,却没有写入磁盘的日志 ,就是所谓的In-Flight日志。

在SQL Server中,In-Flight的日志的大小取决于两个因素,根据Paul Randal的说法,In-Flight日志不能超过60K, 因此In-Flight的日志最大是60K,此外,如果In-Flight日志没有到60K,如果发生了Commit或Rollback,那么直接会写 入磁盘。因此日志最小为512字节,最大为60K,以512字节为单位进行增长。下面我们来看一个例子。

我们首先建立一个简单的表,循环向其中插入10W的数据,该语句会生成大量的日志,如代码清单1所示:

BEGIN TRAN

DECLARE @i INTEGER

SET @i = 0

WHILE ( @i < 100000 )
    BEGIN

        INSERT  INTO Number
        VALUES  ( @i )

        SET @i = @i + 1
    END

CHECKPOINT

COMMIT

代码清单1.生成大量日志的语句

数据库我以5M日志为起点,以5M递增,上面的语句导致日志自动增长,如图1所示。

图1.对应的6次日志增长

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志
, server
, 磁盘
, 字节
, 语句
, 生成
WAL机制
sql server日志查看、sql server 日志清理、sqlserver 日志、sql server 操作日志、sql server 清除日志,以便于您获取更多的相关知识。

时间: 2024-08-04 07:28:11

SQL Server中In-Flight日志究竟是多少的相关文章

实验一:SQL server 2005高可用性之----日志传送

如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/31/4751070.aspx           SQL server 2005高可用性之日志传送是在SQL server 2000 日志传送基础之上的延续,两者其本质上并没有太大的差异.日志传送能够同步位于不同服务器或同一服务器不同实例之间的数据库,通过将主服务器上备份出来的一系列日志自动传送到辅助服务器上并进行恢复.当主服务器宕机的时候,日志传送功能并不能实现从主服务器

sql server中扩展存储过程随笔(几个有用的PROCEDURE小总结)

server|存储过程 在sql server中扩展存储过程直接使用的机会不是很多 我把我知道的几个有用的扩展存储过程使用方式总结如下:     --获得MS SQL的版本号 execute master..sp_msgetversion go Character_Value                              -------------------- ----------- ----------- 8.00.760             1           3  

使用T-SQL导入多个文件数据到SQL Server中

server|数据 使用T-SQL导入多个文件数据到SQL Server中     在我们的工作中,经常需要连续输入多个文件的数据到SQL Server的表中,有时需要从相同或者不同的目录中,同时将文件中的数据倒入.在这篇文章中,我们将讨论如何同时把一个目录中的文件的数据倒入到SQL Server中.      试验环境    我们先创建整个试验的环境.创建文件目录"C:\MyImport",和三个文件a.csv.b.csv和c.csv,文件内容如下.同时,在SQL Server中创建

SQL Server误区:SQL Server中存在真正的“事务嵌套”

误区 #26: SQL Server中存在真正的"事务嵌套" 错误 嵌套事务可不会像其语法表现的那样看起来允许事务嵌套.我真不知道为什么有人会这样写代码,我唯一能够想到的就是某个哥们对SQL Server社区嗤之以鼻然后写了这样的代码说:"玩玩你们". 让我更详细的解释一下,SQL Server允许你在一个事务中开启嵌套另一个事务,SQL Server允许你提交这个嵌套事务,也允许你回滚这个事务. 但是,嵌套事务并不是真正的"嵌套",对于嵌套事务

SQL Server误区:即时文件初始化特性可以在SQL Server中 a)开启 和 b)关闭

误区 #3: 即时文件初始化特性可以在SQL Server中 a)开启 和 b)关闭 a)是不允许的  b)是允许的 即时文件初始化是一个在SQL Server 2005以及之上的版本鲜为人知的特性.这个特性允许数据文件(仅仅是数据文件,不包括日志文件)初始化的过程跳过填0初始化过程.这种方式是在发生灾难时大大减少Downtime的好办法---在恢复数据库时由于免去了填0初始化的过程而直接开始恢复过程. 我之前已经写过关于即时文件初始化误区的文章了(见Misconceptions around

浅谈SQL Server中的高可用性(2) 文件与文件组

在谈到SQL Server的高可用性之前,我们首先要谈一谈单实例的高可用性.在单实例的高可用性中,不可忽略的就是文件和文件组的高可用性.SQL Server允许在某些文件损坏或离线的情况下,允许数据库依然保持部分在线,从而保证了高可用性. 文件和文件组 有关文件和文件组的基本概念,有很多文章已经阐述过了.这里我只是提一下,文件组作为SQL Server访问文件的一个抽象层而存在.因此SQL Server上所做的操作不是直接针对文件,而是针对文件组. 使用多个文件组和文件不仅仅是为了分散IO和提高

浅谈SQL Server中的高可用性(1) 高可用性概览

自从SQL Server 2005以来,微软已经提供了多种高可用性技术来减少宕机时间和增加对业务数据的保护,而随着SQL Server 2008,SQL Server 2008 R2,SQL Server 2012的不断发布,SQL Server中已经存在了满足不同场景的多种高可用性技术. 在文章开始之前,我首先简单概述一下以什么来决定使用哪一种高可用性技术. 依靠什么来决定使用哪一种高可用性技术? 很多企业都需要他们的全部或部分数据高可用,比如说在线购物网站,在线商品数据库必7*24小时在线,

SQL server中如何备份和还原以及备份系统数据库

备份 SQL Server 数据库.在备份上运行测试还原过程以及在另一个安全位置存储备份副本可防止可能的灾难性数据丢失. 使用有效的数据库备份,可从多种故障中恢复数据,例如: 介质故障. 用户错误(例如,误删除了某个表). 硬件故障(例如,磁盘驱动器损坏或服务器报废). 自然灾难. 备份模式在sql server中也有三种类型(它决定备份哪些数据) 1.完整备份 备份包括这个数据库,部分事务日志,数据库结构和文件结构.完整备份代表的是备份完成时刻的数据库状态 2.差异备份 它备份在上一次完整备份

SQL Server中使用 Merge 语句实现表数据之间的对比同步

表数据之间的同步有很多种实现方式,比如删除然后重新 INSERT,或者写一些其它的分支条件判断 再加以 INSERT 或者 UPDATE 等.包括在 SSIS Package 中也可以通过 Lookup, Condition Split 等多 种 Task 的组合来实现表数据之间的同步.在这里 "同步" 的意思是指每次执行一段代码的 时候能够确保 A 表的数据和 B 表的数据始终相同. 可以通过 SQL Server 中提供的 Merge 语句来实现,并且还可以将操作的细节记录下来.具