转换为分区表时的初始范围大小

在 Linux x86/64 上的 Oracle 19c 数据库中工作,尝试将非分区表转换为分区表。

从 Oracle12 开始,alter table modify partition 已可用于将非分区表转换为分区表。我有一个非分区表,它的 initial_extent 大小设置为 544MB。这太大了。实际的第一个范围是 8MB。

当我使用 alter table modify partition 时,我最终得到 90 个分区,所有分区的初始范围均为 544MB。这导致表的大小增加了三倍。许多分区是 90% 加上空的。

问题是这个。在此过程中如何将初始分区盘区大小设置为合理值?

使用 alter table move 重新创建具有新存储的表并不是一个真正有用的步骤,因为其中一些表的大小超过了 TB。也许我错过了它,但我找不到更改或指定初始范围大小的方法。我可以事后更改表移动分区并重建所有索引,但这与分区之前的更改表移动具有相同的问题。

ALTER TABLE mytable MODIFY
Partition by range (mydatecol)
interval ( NUMTOYMINTERVAL(1,'MONTH') )
(
partition p1308 values less than (to_date('01-SEP-2013','dd-mon-yyyy'))
)
-- Below line will raise "ORA-02203: INITIAL storage options not allowed"
-- storage( initial 1m)
UPDATE INDEXES ONLINE;

以上是转换为分区表时的初始范围大小的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>