ITPub博客

首页 > 数据库 > SQL Server > 自动增长配置不合理导致的性能抖动

自动增长配置不合理导致的性能抖动

原创 SQL Server 作者:z_cloud_for_SQL 时间:2023-02-20 15:00:31 0 删除 编辑
背景

客户收到了SQL专家云告警邮件,在凌晨2点到3点之间带有资源等待的会话数暴增,请我们协助分析。

现象 1

登录SQL专家云,进入活动会话的趋势分析页面,下钻到2点钟一个小时内的数据,看到每分钟的等待数都在100左右,2点15分时达到200。




转到活动会话原始数据页面,看到大量会话都在等待,等待类型是 LATCH_EX,等待资源是 LOG_MANAGER,数据库都是 MIIS****。SQL语句是INSERT、UPDATE、DELETE等写入的语句。


等待资源是 LOG_MANAGER,说明数据库 MIIS****的日志文件在发生变化。转到数据库空间页面,发现日志文件从2点钟开始增长,2点20时增长到90GB,3点时降到初始值(因为3点有自动收缩日志文件的计划任务)。

分析 2

首先要分析的是什么语句导致数据库日志文件的暴增。进入慢语句汇总页面,汇总2点钟一个小时内的慢语句, 根据执行时间、CPU消耗、读次数、写次数等指标排序, 找到一个非常大的SQL语句,2点开始执行,2点18分结束。这是迁移历史数据的作业,把当前时间一年前数据迁移到历史表(插入到历史表,然后从当前表中删除),作业很久以前被停止了,昨天才开启,因为要迁移的数据很多,导致了日志文件的暴增。 接下来分析 LOG_MANAGER的等待,日志文件空间不够时就会触发自动增长, 文件 增长时 ,写入数据的 会话必须等 待,此时会看到Lat c h 等待类型 , 增长花费的 时间越长,等待的时间越长,造成的性能抖动越严重。

从2点钟开始日志文件频繁自动增长,日志文件的自动增长增量设置为10%,随着日志文件的空间越来越大,每次增加会达到几GB甚至更多,基于磁盘的性能,最少造成 十几秒的性能抖动。


解决 3

  1. 修改数据文件和日志文件的自动增长为200MB。  每次自动增长很快就能完成,基本不会有性能抖动。
  2. 调整自动收缩日志文件的维护计划,每次收缩的时候预留10GB的空间,避免频繁的自动增长。
  3. 定期检查数据文件的空间,一次性增长一定的空间, 避免频繁的自动增长。


其它 4

除非磁盘空间严重不足,否则不要收缩数据文件,详细请参考: 数据库自动收缩造成的阻 塞。


北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台金牌合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70023658/viewspace-2935993/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
数据库技术运营,多年IT行业从业经验。

注册时间:2022-11-02

  • 博文量
    55
  • 访问量
    61924