数据迁移9.索引重建

1.什么情况下索引会失效
当使用类似 alter table xxxxxx truncate partition XXXX_1 命令后,索引就会失效。
在对分区做ddl操作时,会使分区全局索引失效,需要加上关键字update global indexes。
2.索引失效怎么办
重建索引。
3.重建索引的方法
a.首先查找失效索引
select user_indexes where status=‘UNUSABLE’ (注意不是小写unusable)
b.重建索引的SQL
alter index XXX rebuild index (online);
4.避免方法
alter table xxxxxx truncate partition XXXX_1 update indexes
5.rebuild和rebuild online的区别
a、当rebuild 时一般对原先索引进行INDEX FAST FULL SCAN。
b、当rebuild online的时不用原先索引而执行TABLE ACCESS FULL
c、rebuild和rebuild online都会发生sort,即需要用到temp表空间。
d、rebuild 会阻塞dml语句而rebuild online则不会。
e、rebuild online时系统会产生一个SYS_JOURNAL_xxx的IOT类型的系统临时日志表,所有rebuild online时索引的变化都记录在这个表中,当新的索引创建完成后,把这个表的记录维护到新的索引中去,然后drop掉旧的索引,rebuild online就完成了。

你可能感兴趣的:(数据库)