首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表空间中查看对象大小时,为什么在截断表空间后不返回表空间?

在表空间中查看对象大小时,为什么在截断表空间后不返回表空间?
EN

Stack Overflow用户
提问于 2022-07-28 17:39:04
回答 1查看 142关注 0票数 1

我总是使用截断表来释放空间,并且总是将空间返回给空闲空间。

当我检查甲骨文表空间中的空闲空间时,我发现空闲空间总是在增加。

我用蟾蜍程序

代码语言:javascript
运行
复制
TRUNCATE TABLE 

但是这次不同的是,我截断了两个表,但是它并没有释放表空间,当我检查时

表大小截断后,其大小仍然相同,在大约400 MB之前使用。

为什么它不释放空间,以及如何释放已经被截断且没有数据的空间表。

此外,在截断后,我将表移动到另一个表空间,但其移动的大小相同。

代码语言:javascript
运行
复制
ALTER TABLE CAS_NOSHOW MOVE TABLESPACE   TRNG;

如何腾出空间请您的帮助。

我正在使用oracle 10g数据库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 17:53:40

如果你想恢复高水位标志之上和下面的空间,你可以缩小桌子。

要做到这一点,需要启用行移动。

代码语言:javascript
运行
复制
 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';
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73157069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档