我总是使用截断表来释放空间,并且总是将空间返回给空闲空间。
当我检查甲骨文表空间中的空闲空间时,我发现空闲空间总是在增加。
我用蟾蜍程序
TRUNCATE TABLE
但是这次不同的是,我截断了两个表,但是它并没有释放表空间,当我检查时
表大小截断后,其大小仍然相同,在大约400 MB之前使用。
为什么它不释放空间,以及如何释放已经被截断且没有数据的空间表。
此外,在截断后,我将表移动到另一个表空间,但其移动的大小相同。
ALTER TABLE CAS_NOSHOW MOVE TABLESPACE TRNG;
如何腾出空间请您的帮助。
我正在使用oracle 10g数据库。
发布于 2022-07-28 17:53:40
如果你想恢复高水位标志之上和下面的空间,你可以缩小桌子。
要做到这一点,需要启用行移动。
create table t as
select rownum x, lpad('x', 500, 'x') xx from dual connect by level <= 10000;
/
-- ALTER TABLE t SHRINK SPACE CHECK;
select bytes from user_segments
where segment_name = 'T';
/
delete t where x <= 9900;
/
select bytes from user_segments
where segment_name = 'T';
/
alter table t enable row movement;
/
alter table t shrink space CASCADE;
/
select bytes from user_segments
where segment_name = 'T';
https://stackoverflow.com/questions/73157069
复制相似问题