1、在Oracle数据库中使用SQL语言进行数据的相关处理,比如删除,不会直接释放相应的存储空间,需要单独处理
2、对于存储空间的占用,Oracle中一般包括表信息、表中的数据、分区表等几类,一般的删除语句不会彻底释放存储空间
3、针对表信息的处理,执行drop table xx 语句,相应的表会被放到回收站(user_recyclebin)中,彻底删除释放空间,需要执行drop table xx purge语句,如:drop table testTable purge;
4、针对表中的数据,一般我们使用truncate table 语句进行删除,但此语句只是把表里的信息全部删除,但是表依然存在,表空间依然没有释放,需要执行如下语句保证彻底释放表空间:alter table 表名称 deallocate UNUSED KEEP 0;注意:必须加KEEP 0,否则表空间是不会释放的
5、针对分区表,常用的语句是alter table 表名称 truncate partition 分区名称;但使用此语句,仅清除指定分区表的分区数据,要想彻底释放所占空间,需要执行如下语句:alter table 表名称 DROP partition 分区名称;
6、可以看到,Oracle的常规清除语句都是带有一定的保护功能的,防止误删除,所以不会彻底释放相应空间,只有添加相应参数或者使用专门语句后才能彻底删除并释放空间