delete数据,回收表空间
9i的数据库,因系统中存在几个大表,使的表空间不足。 想使用DELETE 命令删除一些数据后, 使表变小, 从而回收表空间,使表空间的使用率下降,系统为7X24的,只能在线做。求解决办法,谢谢。 delete数据不会释放表空间可以truncate 数据表一直在使用,truncate了不可以吧 利用truncate功能写个存储过程:create procedure test is
begin
delete * from abb where ???;
commit;
execute immediate 'create tableaaa as select * from abb';
commit;
execute immediate 'truncate table abb';
commit;
insert into abb select * from aaa;
commit;
execute immediate 'drop table aaa purge';
commit;
end; 还是申请停机时间吧,在线做不现实. 先delete需要删除的数据,再做表空间切换。
DELETE FROM xxx WHERE ....;
ALTER TABLE xxx MOVE TABLESPACE USERS;
页:
[1]