ORACLE 中删除了表怎么硬盘剩余空间没变?

我在ORACLE 10g数据库中通过PL/SQL直接删除了将近15个G的表,但在操作系统中显示硬盘容量还是没变,怎么才能增加剩余空间呢?

1、tables是存储某个tablespace(表空间)里面的,tablespaces可以包含多个dbf文件,你在硬盘里面可以查到dbf文件。
表空间会随着包含的表内容增加而增大,但是不会随着table删除而减小。
如果要增加剩余空间,需要先drop table ,再drop tablespace。

2、select name from v$tablespace; 可以看oracle包含哪些tablespace
select TABLESPACE_NAME, file_name from dba_data_files;可以查看tablespace对应的dbf文件。
select SEGMENT_NAME from dba_segments where TABLESPACE_NAME='TABLESPACE_NAME' group by SEGMENT_NAME;可以查某个表空间包含哪些表。
3、drop tables
drop table test purge;删除table而不放入回收站
如果table很多,可以执行select 'drop table '||tname||' purge;' from tab order by tname;
4、drop tablespace
DROP TABLESPACE TEST01 INCLUDING CONTENTS AND DATAFILES;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-28
你删除表只能释放表空间里的空间,无法释放数据库的体积
就像你买了一箱可乐,你都喝完了,可乐瓶子还是那么大,还要占为止
你如想要释放空间,可以缩小数据文件的大小:
alter database datafile XXXXXXXX resize XXXXm
这样就可以释放空间,就像你喝完可乐了再把它踩扁,这样他就不占地方了
第2个回答  2011-12-28
yPB
58