【问题标题】:Do I need to move local index after table moved to different tablespace表移动到不同的表空间后是否需要移动本地索引
【发布时间】:2015-07-21 14:22:53
【问题描述】:
当一个表有几个索引是本地索引时,我对将表移动到不同的表空间有点困惑,我想这意味着索引存储在与所有者表相同的某个表空间中,所以当我将表移动到不同的表时表空间,然后本地索引也被移动,然后我只需要在不指定表空间的情况下重建它们。
我是说
ALTER INDEX XXX REBUILD;
而不是
ALTER INDEX XXX REBUILD TABLESPACE XX;
我是对的还是我在这里遗漏了什么?
【问题讨论】:
标签:
sql
database
indexing
oracle11g
ddl
【解决方案1】:
将索引定义为local 与存储它的表空间无关。 local 指的是分区索引的分区方式与它们所指的表相同,而不是 global 分区索引,它有自己的分区定义(甚至定义为非分区),无论表的分区如何。
正如您所指出的,在移动表之后,您必须重建其索引,但这可以对任何表空间进行,无论索引的 local 或 global 定义如何。默认情况下,如果未给出存储子句,则索引将在已存储的表空间上重建。