首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle 11:将大型生产表上的全局索引更改为本地索引

Oracle 11:将大型生产表上的全局索引更改为本地索引
EN

Database Administration用户
提问于 2012-06-04 10:48:56
回答 1查看 14K关注 0票数 5

我有一个带有全局索引的大分区表。我的例子是从归档分区中删除旧数据。我不能简单地删除分区,因为我有全局索引。

因此,我想使用不可见的本地索引(计算12-16h),然后删除全局索引,并使新索引可见,并将其重命名为刚刚删除的全局索引。

但是..。

代码语言:javascript
复制
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将全局索引更改为本地?

删除全局索引,然后创建新索引是不可接受的。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-09-16 11:37:49

我找到了解决方案使得创建索引更快..。(在Oracle 11g上工作正常)

代码语言:javascript
复制
drop index I_EMPLOYEE_SALARY_T;
create index I_EMPLOYEE_SALARY_T on EMPLOYEE (SALARY, DEPARTAMENT) 
tablespace IDX_TABLESPACE local unusable;

然后,我需要重建索引联机选择分区:

代码语言:javascript
复制
ALTER INDEX I_EMPLOYEE_SALARY_T REBUILD PARTITION partition_name online;

更改索引要快得多,因为它使用不同的、更快的机制和数据可以更快地访问。例如,当员工的数据(在本例中)按时间戳进行分区时。因此,更新的数据可以更快地获得。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/24393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档