我有一个带有全局索引的大分区表。我的例子是从归档分区中删除旧数据。我不能简单地删除分区,因为我有全局索引。
因此,我想使用不可见的本地索引(计算12-16h),然后删除全局索引,并使新索引可见,并将其重命名为刚刚删除的全局索引。
但是..。
SQL> create index I_EMPLOYEE_SALARY_T on EMPLOYEE (SALARY, DEPARTAMENT) local invisible online;
create index I_EMPLOYEE_SALARY_T on EMPLOYEE (SALARY, DEPARTAMENT) local invisible online
*
ERROR at line 1:
ORA-01408: such column list already indexed是否还有其他选项可以使用原子/快速操作动态更改id将全局索引更改为本地?
删除全局索引,然后创建新索引是不可接受的。
发布于 2012-09-16 11:37:49
我找到了解决方案使得创建索引更快..。(在Oracle 11g上工作正常)
drop index I_EMPLOYEE_SALARY_T;
create index I_EMPLOYEE_SALARY_T on EMPLOYEE (SALARY, DEPARTAMENT)
tablespace IDX_TABLESPACE local unusable;然后,我需要重建索引联机选择分区:
ALTER INDEX I_EMPLOYEE_SALARY_T REBUILD PARTITION partition_name online;更改索引要快得多,因为它使用不同的、更快的机制和数据可以更快地访问。例如,当员工的数据(在本例中)按时间戳进行分区时。因此,更新的数据可以更快地获得。
https://dba.stackexchange.com/questions/24393
复制相似问题