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

系统 1758 0
原文: 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

 


        


 

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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论