table 移动到不同的 table 空间后,是否需要移动本地索引
Do I need to move local index after table moved to different tablespace
我对将 table 移动到不同的 table 空间感到有点困惑,因为它有几个索引是本地索引,我想这意味着索引存储在一些 [=21] =]space 与所有者 table 相同,所以当我将 table 移动到不同的 tablespace 时,本地索引也被移动,然后我只需要重建它们而无需指定 [=21] =]空间。
我是说
ALTER INDEX XXX REBUILD;
而不是
ALTER INDEX XXX REBUILD TABLESPACE XX;
我说得对还是漏掉了什么?
将索引定义为 local
与其存储的 table 空间无关。 local
指的是分区索引的分区方式与它们所指的 table 相同,而不是 global
分区索引,它有自己的分区定义(甚至定义为非分区) , 无论 table 的分区如何。
如您所述,移动 table 后您必须重建其索引,但这可以对任何 table 空间完成,无论索引的 local
或 global
定义。默认情况下,如果未提供存储子句,索引将在其已存储的 table 空间上重建。
我对将 table 移动到不同的 table 空间感到有点困惑,因为它有几个索引是本地索引,我想这意味着索引存储在一些 [=21] =]space 与所有者 table 相同,所以当我将 table 移动到不同的 tablespace 时,本地索引也被移动,然后我只需要重建它们而无需指定 [=21] =]空间。
我是说
ALTER INDEX XXX REBUILD;
而不是
ALTER INDEX XXX REBUILD TABLESPACE XX;
我说得对还是漏掉了什么?
将索引定义为 local
与其存储的 table 空间无关。 local
指的是分区索引的分区方式与它们所指的 table 相同,而不是 global
分区索引,它有自己的分区定义(甚至定义为非分区) , 无论 table 的分区如何。
如您所述,移动 table 后您必须重建其索引,但这可以对任何 table 空间完成,无论索引的 local
或 global
定义。默认情况下,如果未提供存储子句,索引将在其已存储的 table 空间上重建。