视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle表空间利用率极低时的解决办法
2020-11-09 11:28:52 责编:小采
文档


在我没有整理数据库之前,导出数据库的表有270多M,导入这个数据库后,表空间竟然达到了20G。这是怎么回事,数据库曾经清库好几次

在我没有整理数据库之前,导出数据库的表有270多M,导入这个数据库后,表空间竟然达到了20G。
这是怎么回事,数据库曾经清库好几次,最近刚刚清库,怎么会有这么大的表空间。

我一开始认为是表里面的垃圾数据太多,清库不完整,所以导致表空间这么大,然后我对数据库进行清理,最后导出数据时已经从270M变成10M了,差距相当大。

但是当我再次导入另一个系统时,表空间依然是20G,之后我尝试导入空表,,还是20G,这时候我就想到可能是表本身的空间太大了。

看下图:



这仅仅是一个表,就有这么大的空间,肯定是由于原来这个表曾经有过几十万的数据增长到了700多M,删除数据后,表空间不变,所以就导致了上面的原因。


当我把上面的表转存到临时表的时候,显示如下:



仅仅KB。之后我就按照下面的操作:

1.将原表全部转存到临时表

2.删除原表

3.将临时表存入原表

4.删除临时表


我重新整理完之后,我又导出了,这次从10M变成了7M多。


我在另一电脑上再次导入之后,表空间的大小连100M都没有超过,通过简单的操作,给电脑节省了20G的空间...


再操作上面4步的时候,可能有人会觉得那么多表很麻烦,我说一种我常用的方法,大家看下图:



通过excel可以批量写出样式一样的SQL语句....如果谁有更方便的方法,欢迎交流~~~~~~~~~~~~~

注意事项:上面的操作会丢失表的注释和相应的触发器等等...

这里提供一个从网上搜到的查询表空间的语句

更多Oracle相关信息见Oracle 专题页面 ?tid=12

下载本文
显示全文
专题