设为首页 收藏本站
查看: 1468|回复: 3

[经验分享] SQL Server中“数据收缩”详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-12-12 09:49:58 | 显示全部楼层 |阅读模式
  • 1. 数据库的相关属性
  • 2. 为何数据库需要收缩?
  • 3. 如何收缩数据库?
1. 数据库的相关属性
在MS中创建数据库时会为数据库分配初始的大小(如下图:数据库和日志两个文件),随着数据库的使用文件会逐渐增大。数据库文件大小的增加有两种方式:
  • 自动增长:在自动增长中可以设置每次的增长量,以及最大增长的文件大小。
  • 手动增长:取消“启用自动增长”则为手动增长,这就需要DBA经常观测数据库的运行情况,及时更改数据库的小。手动增长比较麻烦,一般都设为自动增长。
11222509-ed4f05f0f1a44800b19a660a4a472b74.jpg
11222522-fea0331231bb421bbf463c69d6beb08b.jpg
11222537-f9768691b8bd4a0c8e9a65f2393c7d0e.jpg
2. 为何数据库需要收缩?
要明白为何数据库需要收缩,首先需要理解两个概念:
  • 为数据库分配的空间:如上图初始时为“数据库文件”分配的空间为3MB,为“日志文件”分配的空间未1MB。
  • 数据库实际使用的空间:以上图为例,由于数据是刚创建的,里面没有任何用户数据,因此它实际使用的空间很小(不足1MB)。
由此可以理解为:分配空间>=使用空间。在实际使用的过程中可能会出现分配空间为100MB,而使用空间仅为20MB,这就造成了磁盘有80MB的浪费,为了消除这种浪费就需要使用“数据收缩”功能。
3. 如何收缩数据库?3.1 通过设置数据库选项AUTO_SHRINK为True,即让数据库自动收缩,如下图:
11222557-dbdecf721aa44c10a11dc2d247203266.jpg
3.2 收缩数据库文件
右键数据库—任务—收缩—文件,如下图:
11222604-1d10f94f557e44fbb9a96b0e81ad6ec1.jpg
文件类型:选择所要收缩的是“数据库文件”还是“日志文件”。
当前分配的空间:数据库为该文件分配的大小,就是在磁盘上看到的文件大小。
可用空间:就是“当前分配的空间” 减去“实际使用的空间”。
收缩操作:
   ① 释放未使用的空间:将该文件中未使用的空间释放出来,数据在文件中不移动;
   ② 在释放未使用的空间前重新组织页:此选项可以将文件收缩到“指定大小”,并将数据重新组织。其最小值为数据库“实际使用的空间”;
   ③ 通过将数据迁移到同一文件组的其他文件来清空文件:不解释,很少用。
上述操作也可以使用T-SQL替代:
DBCC ShrinkFile(‘数据库名’,  targetsize);                        /* 收缩数据库文件 */DBCC ShrinkFile(‘数据库名_log’,  targetsize);                /* 收缩日志文件 */
Targetsize:单位为兆,必须为整数,DBCC SHRINKFILE 尝试将文件收缩到指定大小。
DBCC SHRINKFILE 不会将文件收缩到小于“实际使用的空间”大小,例如“分配空间”为10M,“实际使用空间”为6M,当制定targetsize为1时,则将该文件收缩到6M,不会将文件收缩到1M。
3.3 收缩数据库
即同时收缩“数据库文件”和“日志文件”,右键数据库—任务—收缩—数据库
11222627-f792ca1dafd94fe3852bf087cf7e0462.jpg
收缩后的最大可用空间:设为0,即收缩所有的可用空间。
也可以使用T-SQL完成数据库的收缩:
DBCC SHRINKDATABASE(数据库名,百分比)
百分比:即“收缩后文件中的最大可用空间”,取值范围“大于等于0, 小于100%”,实际使用中设为0即可。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-11521-1-1.html 上篇帖子: 一个sql server递归查找的实例 下篇帖子: sqlserver 同字段值拼接(效果同oracle中的wm_concat)

尚未签到

发表于 2013-12-18 12:33:29 | 显示全部楼层
无论做什么,记得为自己而做,那就毫无怨言。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-23 14:11:42 | 显示全部楼层
乀她骗她說 自己狠满足

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-12-29 19:54:54 | 显示全部楼层
即使哭了我也要笑、即使笑了我也要继续。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表