数据库日期分区更改

Db Date Partition Change

我有一个 table 让我们说 Orders(id, ORDERDATE) 并且这个 table 每天在 ORDERDATE 列上分区。

当我在插入它们一周后更改某些记录的 ORDERDATE 列时,记录是否被移动到其他分区?

使用 Oracle 11g...

是也不是。您必须启用它:

alter table orders enable row movement;

有些文档说 "BEWARE row movement must be implemented!!!" 等等。行运动并不那么危险。您必须记住,您不能坚持将 ROWID 存储在某处,因为 ROWID 会在行移动时发生变化。 但是您很可能无论如何都没有使用 ROWID。

此外,移动(更新)在内部实现为纯行删除和插入。所以它可能会产生更多的重做日志。如果它是 "real" table 更新。

此外,这可能 "waste" 一些 space。即使所有行都移出,分区段也不会减少。