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

2024年11月27日 17:45
有3个网友回答
网友(1):

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;

网友(2):

你删除表只能释放表空间里的空间,无法释放数据库的体积
就像你买了一箱可乐,你都喝完了,可乐瓶子还是那么大,还要占为止
你如想要释放空间,可以缩小数据文件的大小:
alter database datafile XXXXXXXX resize XXXXm
这样就可以释放空间,就像你喝完可乐了再把它踩扁,这样他就不占地方了

网友(3):

yPB
58