数据库自动收缩带来的严重问题
背景
今天早上11点的时候有客户打电话过来说医院的cis系统一直有阻塞,导致系统有卡慢的现象,信息中心的电话都快被打爆了,信息科人员很头疼啊。
万幸我们给数据库装了‘摄像头’会把数据库的一切状态操作都会记录下来,赶紧要了远程之后看到了系统确实存在大量的阻塞(下图)
通过点击紫色圆点之后发现了长长的阻塞链,(注:会话标识33的语句是阻塞的源头,下面的语句为被阻塞的语句)可以看到被阻塞的语句确实等待了很长时间,系统因为大量的阻塞,前端人员的使用确实有卡慢的现象。(下图)
那么系统为什么会有这么严重的阻塞呢?怎么造成的?会话标识为33的语句到底是何方神圣?接下来我们来一探究竟。
在sql server 管理工具里边用语句查询会话标识为33的语句为自动收缩的命令,看了看时间从2018年8月15号自动收缩已经开始运行,进度为79%,(下图)
接下来从体检项中可以看到相关数据库自动收缩配置为开启状态。
通过和医院工程师交流得知,昨天下午三点半有做过数据迁移的操作,删除了100多G的数据,(下图)
经过分析和查询一些资料得出以下结论,数据库中的自动收缩选项在很早之前就已经开启,但是没有真正收缩过,昨天下午三点的时候删除了大量数据,触发了自动收缩数据库文件的操作,
那么为什么今天早上才有阻塞的情况呢?收缩数据库对于sql server来说本身就是一件浪费资源的事情,在昨天下午三点半的时候前端业务量减小,没有影响到业务,而到了今天早上业务量增多,达到业务高峰期,才会把业务相关的语句阻塞住,严重影响了前端人员的使用。
如何缓解及解决?
因为在收缩数据文件,要重新整理数据,进度到了79%,在这个自动过程中,数据边收缩边释放,到达100%后收缩完成后,此问题会解决。另外一种方法就是重启sql服务,事务会提交或回滚,此问题也会得到解决(不建议)
下面来点技术性的东西,满足一下求知者的欲望……….
什么是自动收缩?
随着数据量的增加数据库的设备文件(MDF\LDF)会不断增长,当数据库中的某些数据删除,数据库设备文件的大小并不会随着数据量的减少而减少,数据库设备需要占用的磁盘空间就没那么大了,这时候自动收缩就可以释放出磁盘空间,主要直观体现在数据库设备文件的大小上,避免资源的浪费.
在什么条件下会触发?
在开启自动收缩选项的情况下,SQL Server定期会检查文件使用情况。如果空闲空间大于25%,SQL Server就会自动运行自动收缩数据库文件的动作。
(附上微软官方链接:https://docs.microsoft.com/zh-cn/sql/t-sql/statements/alter-database-transact-sql-set-options?view=sql-server-2017&viewFallbackFrom=sql-server-2014)
例如:数据迁移删除大量数据时,空闲空间大于25%时,会触发自动收缩功能。
带来的危害(自动收缩和手动收缩)?
对于一个磁盘空间很紧张的系统,这个设置无疑是有帮助的。但是从数据库自身的健康和性能考虑,这个设置并不建议多用。这是因为:
1、数据文件收缩导致了索引的完全碎片化,索引的效率大大降低,严重影响性能。
2、数据文件的收缩同样产生了大量的I/O操作,耗费大量的CPU资源,性能下降。
3、在业务高峰期的时候可能会造成大量的阻塞。
(附上链接资料,有兴趣的同学可以去研究一下:
https://www.cnblogs.com/kerrycode/archive/2013/06/04/3116339.html )
一点点小建议:
1、不要开启自动收缩选项
2、不到万不得已,千万不要收缩数据库。收缩数据库影响极大。
3、如果磁盘空间真的不足,需要做收缩的时候,一定要手工来做,而且是在维护窗口期间;并且尽量使用语句来执行,可以提示错误;尽量一次不要收缩太多,分几次收缩。
转载于:https://www.cnblogs.com/double-K/p/10621461.html
数据库自动收缩带来的严重问题相关推荐
- 数据库自动收缩造成的阻塞
背景 今天上午11点时客户打电话过来说医院的CIS系统一直有阻塞,导致系统卡慢严重,信息中心的电话都快被打爆了.赶紧要了远程登录到SQL专家云,看到了系统确实存在大量的阻塞. 点击紫色圆点进入活动会话 ...
- mysql 数据库怎么收缩_SQL Server -- 数据收缩详解
1. 数据库的相关属性 在MS中创建数据库时会为数据库分配初始的大小(如下图:数据库和日志两个文件),随着数据库的使用文件会逐渐增大.数据库文件大小的增加有两种方式: 自动增长:在自动增长中可以设置每 ...
- 《SQL Server企业级平台管理实践》读书笔记——SQL Server如何设置自动增长和自动收缩项...
SQL Server允许用户设置数据库初始值和最大值,可以通过自动增长或者自动收缩进行配置.通过这些配置,我们可以防止数据库空间问题而导致的应用程序修改失败或者SQL Server磁盘空间耗尽的事情发 ...
- 压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志
[标题]压缩SQL数据库日志-收缩SQL数据库日志-备份SQL数据库日志-删除SQL数据库日志 [内容] 清除SQL数据库日志文件 有两种方式: 一.是压缩日志,二.是 ...
- 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
简介:近日,智能数据库和DAS团队研发的智能调参ResTune系统论文被SIGMOD 2021录用,SIGMOD是数据库三大顶会之首,是三大顶会中唯一一个Double Blind Review的,其权 ...
- 数据库自治服务DAS年度新版本:”数据库自动驾驶“进入规模化时代
简介:在今天的发布会上,针对用户的核心痛点,DAS新发布了8大核心自治功能,包括7x24小时异常检测.自动SQL限流.自动SQL优化.自动空间优化.自动弹性伸缩.智能调参.智能压测.实时审计等,为企业 ...
- 因“智”而治,数据库自动驾驶时代大门即将开启!
数据库自治服务DAS即将重磅发布 点我立即预约直播 DAS精彩详情 因"智"而治,数据库即将迈入自动驾驶时代 4月22日 15:00 - 16:30 期待与你一同见证精彩蜕变 随着 ...
- 阿里云数据库产品专家胡航丽:数据库自动驾驶平台DAS重磅助力数据库领域智能未来...
墨墨导读:2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者相聚北京,见证了个人的快速成长.技术的迭代进步.行业的蓬勃发 ...
- SQL Server 数据库之收缩数据库和文件
收缩数据库和文件 1. 概述 2. 自动收缩数据库 3. 手动收缩数据库 4. 手动收缩文件 1. 概述 当数据库随着时间而越来越大时,可对数据库进行收缩操作: 收缩数据文件通过将数据页从文件末尾移动 ...
最新文章
- 速查笔记(Linux Shell编程上)
- Spring 事务底层原理,你会了吗?
- 阿里云叔同:以容器为代表的云原生技术,已经成为释放云价值的最短路径
- SAP系统的配置传输分为两种情况:
- parasoft Jtest 使用教程:防止特定应用错误的再次发生
- Swift4.1第二章 The Basics
- html js清除缓存,js清除浏览器缓存的几种方法
- 前端学习(3032):vue+element今日头条管理-反馈
- Spring-aop-AnnotationAwareAspectJAutoProxyCreator类
- 手机开热点但是电脑一直连接不上_电脑无法连接手机开的热点怎么解决
- python实现ORC/文字识别之pytesseract
- php实现图片加密,PHP实现支持加盐的图片加密解密.pdf
- 关于SAP的用户出口
- aardio - f()函数通过变量名将变量值整合到一串文本中
- 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667B
- 自用笔记44——基姆拉尔森公式和字符串数组
- rpm包是什么?怎么解压?
- 日语学习资料-N4(免费下载)
- How to Flash a ROM to Your Android Phone
- 从用户反馈看简书APP
热门文章
- ecs服务器配置git_基于ECS和NAS搭建个人网盘
- “万能钥匙”可以释放大脑:脑刺激个性化医疗的新领域
- 索尼:声控将在VR中发挥大作用
- 微软图像加密算法被破解,谷歌等大厂都在用,MIT硕士小哥开源逆向所用方法...
- 在杭州,我们逛了一家“数据博物馆”
- 周鸿祎:网络安全不是一门“卖货”的生意
- 马斯克“口无遮拦”发推特又挨批,被指无视法院命令
- 北理工校友发明文言文“填词大师”,断句、造词都能做,高考文言文满分靠它了...
- 孙正义太难了:去年亏125亿美元,15家投资公司要破产,二期愿景基金不得不暂停...
- 微软Excel竟能实现CV算法:亚马逊工程师妙用,人脸检测、字符识别都不在话下...