SQL Server Log文件对磁盘的写操作大小是多少

原文:SQL Server Log文件对磁盘的写操作大小是多少

SQL Server 数据库有三种文件类型,分别是数据文件、次要数据文件和日志文件,其中日志文件包含着用于恢复数据库的所有日志信息,SQL Server总是先写日志文件ldf,数据变化写入mdf则可以滞后,所以日志写入的速度在一定程序上决定了SQL Server所能承载的写事务量,那么ldf写入大小是多少呢?

 

要知道SQL Server写 Log的大小,这里使用工具Process Monitor

这里设置一个Filter,以满足只收集SQL Server 写日志,如下图所示:

在一个OLTP生产环境的结果分析如下:
从中可以看到这个UserDB.ldf的Log写入是顺序写,写入大小以1024byte为主

通过上面的结果,针对Log文件ldf的写要求,我们在选择磁盘及RAID时,如何来做呢?推荐使用工具SQLIO来做一个针对单线程顺序写1kb硬件性能比对测试,来模拟Log写操作,这个将在以后的文章里进行测试。

那么,SQL Log写入ldf一定是以1024byte最多吗?这个不一定的,以下是在另外的OLTP下得到的结果:

下面这个是Tempdb:

 

那么你的是多少呢?可以用Process Monitor下测下。
Process Monitor下载地址

收集到的数据存成Logfile.CSV.

然后用下列语句进行分析:

USE tempdb
GO
CREATE TABLE [dbo].[Logfile]
    (
      [Time of Day] [nvarchar](MAX) NULL ,
      [Process Name] [nvarchar](MAX) NULL ,
      [PID] [nvarchar](MAX) NULL ,
      [Operation] [nvarchar](MAX) NULL ,
      [Path] [nvarchar](MAX) NULL ,
      [Result] [nvarchar](MAX) NULL ,
      [Detail] [nvarchar](MAX) NULL
    )
ON  [PRIMARY]

GO

BULK INSERT [Logfile] FROM 'D:\Tmp\Logfile.CSV'
WITH (
         FIELDTERMINATOR =',',
 FIRSTROW=2
)

SELECT  [Time of Day] ,
        [Process Name] ,
        PID ,
        Operation ,
        REPLACE(PATH, 'DBname', 'myDB') AS Path ,
        Result ,
        Detail
FROM    [Logfile]
--WHERE PATH LIKE '%DBname%'

SELECT  SUBSTRING(detail, CHARINDEX('Length:', detail) + 7,
                  CHARINDEX('Flags', detail) - CHARINDEX('Length:', detail)
                  - 13) AS size
INTO    #
FROM    [Logfile]
WHERE   PATH LIKE '%HighEndSeekerDB%'

SELECT  size AS [SIZE(Bypte)] ,
        COUNT(*) AS CNT ,
        LTRIM(CAST(COUNT(*) * 1.0 / ( SELECT    COUNT(*)
                                      FROM      #
                                    ) * 100 AS NUMERIC(18, 4))) + '%' AS ratio
FROM    #
GROUP BY size
--ORDER BY count(*) desc
--ORDER BY CAST(REPLACE(size, ',', '') AS BIGINT)
ORDER BY ratio DESC

  

 

时间: 2024-08-31 05:47:51

SQL Server Log文件对磁盘的写操作大小是多少的相关文章

XEvent – SQL Server Log文件对磁盘的写操作大小是多少

原文:XEvent – SQL Server Log文件对磁盘的写操作大小是多少 本篇是上一篇SQL Server Log文件对磁盘的写操作大小是多少的续,使用XEvent收集SQL Server Data文件和Log文件的写大小,脚本如下: DECLARE @DBNAME VARCHAR(256) SET @DBNAME = 'myDB' DECLARE @sqlcmd NVARCHAR(MAX) = 'IF EXISTS(SELECT * FROM sys.server_event_sess

人人都是 DBA(V)SQL Server 数据库文件

原文:人人都是 DBA(V)SQL Server 数据库文件 SQL Server 数据库安装后会包含 4 个默认系统数据库:master, model, msdb, tempdb. SELECT [name] ,database_id ,suser_sname(owner_sid) AS [owner] ,create_date ,user_access_desc ,state_desc FROM sys.databases WHERE database_id <= 4; master mas

如何分析SQL Server Trace文件

1.问题引出 老鸟为了重点栽培菜鸟,决定交给菜鸟一个艰巨而光荣的任务.这天,菜鸟刚到公司还未坐下,老鸟便劈头盖脸的问道:"你知道,我们如何Trace SQL Server执行语句吗?怎么手动分析这些Trace文件?如何将Trace File与Windows的性能监视器结合,看到每个语句执行时的性能开销?以及如何自动分析SQL Server Trace文件?". 菜鸟还没有反应过来,就被杀死了99%的老细胞,下意识的回答:"啊?". "去研究下吧"

VS2008连接SQL Server数据库文件出错的解决方案

有园子里的朋友问到一个问题:系统上安装的是vs2008+Sql 2005 developer(没有安装Sql server 2005 Express )用代码直接连SQL Server服务器没有问题,但在项目中数据源改用SQL Server数据库文件时出错,提示错误如下:"与SQL Server文件(*.mdf)的连接要求安装SQL Server2005才能正常工作,请确认是否安装了该组件,--"英文版为"Connections to SQL Server Files (*.

SQL Server日志文件庞大收缩方法(实测好用)

原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK='NUL' --收缩 DBCC SHRINKFILE('CloudMonitor_log')   以后就可以采用常规的定期备份日志(比如一小时一次)来防止日志文件无限增长. SQL Server日志文件庞大收缩并非易事, 文章中提到: 由于首日志.尾日志和空间重复利用的原因,当备份日志后产生了日志

如何缩小SQL SERVER日志文件(1/2)

如何缩小sql server日志文件 可以将日志文件缩小到自己想要的大小了.把代码copy到查询分析器里,,然后修改其中的3个参数(数据库教程名,日志文件名,和目标日志文件的大小),运行即可(我已经用过多次了) ----- set nocount on declare @logicalfilename sysname, @maxminutes int, @newsize int use marias -- 要操作的数据库名 select @logicalfilename = 'marias_lo

艾伟_转载:VS2008连接SQL Server数据库文件出错的解决方案

有园子里的朋友问到一个问题:系统上安装的是vs2008+Sql 2005 developer(没有安装Sql server 2005 Express ) 用代码直接连SQL Server服务器没有问题,但在项目中数据源改用SQL Server数据库文件时出错,提示错误如下:"与SQL Server文件(*.mdf)的连接要求安装SQL Server2005才能正常工作,请确认是否安装了该组件,--" 英文版为"Connections to SQL Server Files (

解决SQL Server日志文件损坏严重的问题

如果服务器出现Raid故障,在数据基本恢复成功后,发现其中的一个Sql Server日志文件(扩展名LDF)损坏严重,我们可以通过下面的操作使数据全部恢复. 首先新建一个同名的数据库,然后再停掉sql server服务,用原数据库的数据文件覆盖掉这个新建的数据库文件,重启sql server服务.打开企业管理器,该数据库显示"置疑",在查询分析器中执行下面的语句: USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH

在SQL Server的数据存储中与NTFS簇大小有关

NTFS是Windows NT以及之后的Windows 2000.Windows XP.Windows Server 2003.Windows Server 2008.Windows Vista和Windows 7的标准文件系统.NTFS取代了文件分配表(FAT)文件系统,为Microsoft的Windows系列操作系统提供文件系统.NTFS对FAT和HPFS(高性能文件系统)作了若干改进,例如,支持元数据,并且使用了高级数据结构,以便于改善性能.可靠性和磁盘空间利用率,并提供了若干附加扩展功能