加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

数据迁移9.索引重建

发布时间:2022-11-07 15:01:00 所属栏目:MsSql教程 来源:网络
导读: 1.什么情况下索引会失效
当使用类似 alter table xxxxxx truncate partition XXXX_1 命令后,索引就会失效。
在对分区做ddl操作时,会使分区全局索引失效,需要加上关键字update global in

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掉旧的索引mssql重建索引,rebuild online就完成了。

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!