为什么SQL表清空了.数据库占用还是那么大呢?

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:24:32
使用TRUNCATE TABLE清空了很多表.但在我的电脑下面查看MDF文件好象一点点也没有变小.为什么呢?怎么解决?
收缩数据库只能收缩日志.MDF一点也没有变小.

那是正常的.因为数据库是建在设备上的,建库时是按你设定的原大小,和增长率自动增长的,数据库设备已划出空间,就算你库中没有内容也是那么大.

这就像一个只有扩大没有缩小的气球,在你向里面放东西时把他挤大了,再拿出来东西时,虽然里面东西减少了,但空间已经挤出来了,回不去了,这时你还可以向里面放东西,占用取出来的东西的位置.如果放不下了,他就又向外挤.
就是这个道理.

表空间需要在后台作调整,windows下的大多都是自动扩大表空间的,solaris、linux下的需要手工分配表空间,所有的表空间一旦增长了就占用了硬盘资源,不做表空间调整是不会小的。实际上缩小表空间是不可能的了,除非exp导出,重建数据库,再imp导入。

收缩收据库的数据文件和日志文件!

收缩数据库,也就是压缩,这样会比以前小很多。

需要压缩一下数据库

leeyige 说得不错