oracle 10g版本 delete数据以后会自动释放表空间吗

发布网友 发布时间:2022-04-23 15:26

我来回答

2个回答

热心网友 时间:2022-04-10 08:58

delete本来就不释放表空间的啊

truncate table 表名 --这样才释放表空间

如果你只是delete 部分数据 比如你把id=1的删除掉

但你还想释放表空间,需要借助一下临时表

分步给你执行一下

delete from 表名 where id=1;

commit;--以上为删除数据

 

create table tmp as select * from 表名;--将目前表内的数据暂时放到tmp表中

 

truncate table 表名;--清空原表数据

 

insert into 表名 select * from tmp;--将临时表数据反插回去

commit;

 

drop table tmp;--将临时表删除

热心网友 时间:2022-04-10 10:16

oracle中所有的delete操作几乎都不释放空间


要释放空间的话:


可以删除所有数据的情况:  truncate 

有停机时间的情况: alter table xx move 

没有停机时间的情况:  alter table xx shrink space

from askmaclean

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com