故障排查-tempdb数据文件暴增分析

28 篇文章 0 订阅
25 篇文章 1 订阅

背景

某客户tempdb数据文件突然暴增,导致磁盘可用空间紧张,让我们找到暴增的原因

现象

登录到SQL专家云,通过趋势分析进行回溯,在4月12日,tempdb数据文件在3个小时内从10GB涨到了80GB。随后使用空间(黄线)下降,但是总空间(蓝线)保持不变。

 进一步查看发现暴增的为tempdb内部对象

分析 

微软官方文档对tempdb的详细描述如下图,原文链接:https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/tempdb-database?view=sql-server-ver15

 在活动会话页面看到对应时间段内在运行很多个消耗大、运行时间长的语句

 进入ID为61的会话完整信息,可以看到该会话内部对象释放空间达到了27G左右。是集团报表产生的查询语句,十分复杂,里面用到了大量的jion、union、order by、子查询等,都会消耗tempdb的内部对象空间。其他的会话也是相同的语句。

 定位到语句后就很容易找到原因,以前都是选择一个月的时间进行统计,这次因为误操作,选择了一年的时间,执行时间长导致页面一直没有返回,所以操作人员重复进行查询,造成了同时运行多个相同的语句。

解决

  1. 重启SQL Server服务把tempdb恢复到初始大小;

  2. 发现SQL语句写法存在严重的性能问题,进行优化后,性能得到十几倍的提升;

  3. 完善程序,例如限制时间的选择,不允许重复点击按钮等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值