WITH ROWIDS 选项

为分片表包含一个称为 rowid 的隐藏列。缺省情况下,分片表不包含此列。它的整型值定义了此行的物理位置。

要在分片表中包含 rowid 列,必须在 CREATE TABLE 中使用 WITH ROWIDS(或在 ALTER TABLE 中使用 ADD ROWIDS 或在 ALTER FRAGMENT INIT 中使用 WITH ROWIDS)显式地创建。分片表的行中的 rowid 无法使用未分片表中 rowid 的方法辨别该行的物理位置。

当您使用 WITH ROWIDS 选项为一个分片表添加新的 rowid 列时,数据库服务器为每一列分片唯一的 rowid 编号并创建索引以查找该行的物理位置。使用此存取方法的性能媲美使用 SERIAL 、BIGSERIAL 或 SERIAL 列。一个行的 rowid 值无法更新,但在该行存在期间保持稳定。您指定 WITH ROWIDS 选项之后,每行都要求额外四个字节存储 rowid 列。

建议: 当创建新应用时,使用主键而不是 rowid 值作为存取方法。