【数据库事务日志碎片原理分析与方案】深入解析篇.pdfVIP

【数据库事务日志碎片原理分析与方案】深入解析篇.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【数据库事务日志碎片原理分析与方案】深入解析篇

AgileSharp- 【数据库事务日志碎片原理分析与方案】-深入解析篇 在上一篇文章 【数据库事务日志碎片原理分析与方案】-分析篇 中,已经普及了一些与 日志文件相关的内容,下面,我们就进一步的理解。 日志增长与VLF 文件的个数 通过上面的相关内容的介绍,我们已经知道了日志文件自动的增长会到了一些问 题,而事实确实如此,下面,我们就来更加清楚的看看这些问题。 很显然,我们不希望日志文件任意的增长,我们更加希望这个增长是受我们控制 的。我们先看看自动增长的一些问题: 1.导致过多的VLF 。因为自动增长会在需要的时候去增加日志文件所在磁盘空间的大 小,而且每次分配的空间又会被分成多个VLF ,如果每次增长的磁盘空间不大,而数据库 的操作(指的是那些写日志的操作)又非常的频繁,最后就结果就是数据库的日志文件一 点点的增长,从而导致磁盘的文件碎片和数据库内部日志文件碎片,这样就会极大的降低 了读取日志的速度。另外,大家应该还记得之前我们说过:数据库的日志是循环写入的, 如果日志文件内部碎片,那么在重新将日志写入日志文件的时候,就需要去需找文件的位 置,会使得相对应的数据库操作更加的慢。 2.每次日志文件的增长会消耗CPU 和I/O:日志自动增长不会使用实例文件初始化, 因此,SQL Server 需要去每次都去经历日志文件进行初始化的全过程,而这个过程是非常 消耗资源的。这一点,大家只要知道有这么回事就行了,不用深究。 另外,如果我们在建立数据库的时候,采用了默认的配置,那么自动增长是被默 认开启的,而且默认的数据文件和日志文件的大小都很小。如果我们就这样使用数据库, 最后会发现:日志文件中包含成百上千个VLF 。 每次在新建一个数据库的时候,默认的大小以及自动增长的设置都是从 model 这个系统数据库中继承而来的。一般而言,日志文件的初始大小 1MB,自动增长为 10%。 AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案 AgileSharp- 【数据库事务日志碎片原理分析与方案】-深入解析篇 这个时候,可能有朋友就要问了:这个1MB 日志中包含多少个VLF ,或者说日 志文件的大小与VLF 的个数之间是什么关系? 我们下面的一个表反映了日志文件的大小和VLF 个数之间的关系。 很显然,在默认的情况下,数据库的日志文件将会包含4 个VLF ,因为默认的时 候大小是1MB64MB 的。 所以,这样有一个建议:除非你需要用很多的小的数据库,否则,就调整 Model 数据库的一些设置,使得以后你新建的数据库从继承你设定的设置数据。 下面,我们就通过例子来看看一些问题。 我们下面的代码,创建了一个新的数据库,采用的默认的设置。同时,也将恢复 模型设置为Full,如下所示: AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案 AgileSharp- 【数据库事务日志碎片原理分析与方案】-深入解析篇 在下面的一段代码中,我们使用DBCC LOGINFO 来查看日志文件的VLF 的个数, 如下: 现在,我们再看到下面的代码,在代码中创建了一个新表AgileSharpTable ,并且开启 事务,然后插入10000 行数据: AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案 AgileSharp- 【数据库事务日志碎片原理分析与方案】-深入解析篇 此时,这个测试花了将近50 秒的时间,此时,我们在查看VLF 的信息,此时发现已 经有了251 个。 下面,我们在新建一个数据库,此时我们自己设置日志文件的大小和增长情况, 如下: AgileSharp() 安捷雨希提供性能优化,架构设计咨询,内训,解决方案 AgileSharp- 【数据库事务日志碎片原理分析与方案】-深入解析篇 此时,我们还是运行DBCC LOGINFO ,此时发现里面包含了8 个VLF ,因为我们的 日志文件的初始大小=64MB 并且1GB 。 像第一个例子,我们此时在新的数据库中创建新的表,并且插入10000 条数据。然 后我们在运行DBCC LOGINFO ,此时发现,它的VLF 还是8 个。而且插入的数据也快了 很多,只有27 秒,这个主要

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档