SqlServer数据文件太大,表占用空间太大,怎么释放空间

0
SqlServer2008 r2数据库,数据文件太大了,谁知道,这里的保留,还有未使用,都是怎么来的么?
我最大的表有上亿条数据,保留有80多个g,但是实际数据大小只有40多g,还有40多g未使用,这些都占用磁盘空间,现在搞得磁盘都满了。。。自动收缩数据库只能收缩日志文件的一部分,mdf文件还是没怎么变小。。求救。。。
QQ图片20141216140826.jpg

已邀请:
0

xiaoyaya 2014-12-16 回答

数据库里面有个收缩,用这个就可以解决
0

lxljw1314 2014-12-16 回答

用了,但是收缩数据库之后只是把日志文件变小了,主文件mdf还是好几百g,没少多少。。。就是有几个像第一个表那种情况,实际数据只占40来g,但是加上未使用的40多,就变80多,太占空间了
0

梁勇 - 天道酬勤、上善若水。爱好商业智能 2014-12-19 回答

Ben回复 :
依我的思路来解决
1.操作之前备份数据库
2.表数据太大,可以新建一个表,不要任何索引,将数据移到新表
将旧表删除,再执行数据库收缩 看下
3.将新表命名为原来的表名
4.这个操作最好是在晚上操作比较好,避免影响到业务


2步那里在收缩数据库之前,还要执行下索引重建操作 ,新表的表结构要跟旧表一样的
0

lxljw1314 2014-12-19 回答

1.磁盘都满了,备份的时候报没有空间
    []现在的表都是没有主键没有索引的,一张表上亿的数据,数据迁移不知道要多久,晚上关门,没法搞啊[/]

最后还是给那几个表新建了聚集索引,然后表的未使用空间就出来了,但是想把空间释放给磁盘,还要收缩,收缩文件好像不管用,我都是收缩数据库的,花了好几个小时。。。。太慢了
0

aliceliuyu - To Be Or Not To Be That Is a Question 2014-12-22 回答

如果是SQL SERVER2008的建议这样试一下,右击需要压缩的表-存储-管理压缩-压缩类型 按照这个步骤试试看
0

lxljw1314 2014-12-22 回答

@aliceliuyu,恩,大概看了下这个东西,我在本地测试环境试了下,选了page压缩,表的大小确实缩小了很多,不知道实际生产环境中使用这个会不会有什么副作用啊?如果没什么不良影响,倒是个节省存储成本的好办法啊
0

aliceliuyu - To Be Or Not To Be That Is a Question 2014-12-23 回答

这个实际环境是否会产生副作用我就不知道了,我也是在平时学习中看到的这个压缩方案
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-02-04 回答

先看看是不是 log文件过大,将数据库模式切换为简单。
然后删除Log.
删除Log后,收缩数据库

要回复问题请先登录注册