小编Ada*_*ium的帖子

删除然后插入相同数据后,表大小无限增长

我创建一个表并用数据填充它:

create table tab
as
select 'value' || level val
from dual
connect by level <= 10000;
Run Code Online (Sandbox Code Playgroud)

如果我然后删除所有行并插入相同的数据:

delete from tab;

insert into tab
select 'value' || level val
from dual
connect by level <= 10000;

commit;
Run Code Online (Sandbox Code Playgroud)

每次执行删除然后插入时表大小都会增加。多次执行这些操作会导致表增长到原始大小的许多倍。

我希望大小保持(大约)相同。为什么会这样?

删除将空间标记为空闲,它实际上并没有缩小段。后续插入应首先使用 HWM 以下的可用空块。

我可以使用alter table tab shrink space.

我在 Oracle 12 和 Oracle 18c 中进行了测试。

oracle delete insert size table

5
推荐指数
1
解决办法
1115
查看次数

标签 统计

delete ×1

insert ×1

oracle ×1

size ×1

table ×1