数据库日期分区更改
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。即使所有行都移出,分区段也不会减少。
我有一个 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。即使所有行都移出,分区段也不会减少。