oralce重建索引的方案_第1页
oralce重建索引的方案_第2页
oralce重建索引的方案_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 oralce重建索引的方案一:考虑重建索引的场合1:表上频繁发生update,delete操作2:表上发生了alter table .move操作(move操作导致了rowid变化)二:判断重建索引的标准 索引重建是否有必要,一般看索引是否倾斜的严重,是否浪费了空间; 那应该如何才可以判断索引是否倾斜的严重,是否浪费了空间,如下:1, 对索引进行结构分析Analyze index indexname validate structure;2, 在执行步骤1的session中查询index_stats表,不要到别的session去查询 select height,DEL_LF_ROWS/LF_

2、ROWS from index_stats;3, 在步骤2查询出来的height>=4或者DEL_LF_ROWS/LF_ROWS>0.2的场合,该索引考虑重建;Example: SQL> select count(*) from test_index; COUNT(*)- 2072327SQL> analyze index pk_t_test validate structure;Index analyzed SQL> select height,DEL_LF_ROWS/LF_ROWS from index_stats; HEIGHT DEL_LF_ROWS/LF

3、_ROWS- - 3 0SQL> delete from test_index where rownum<250000; 249999 rows deleted SQL> select height,DEL_LF_ROWS/LF_ROWS from index_stats; HEIGHT DEL_LF_ROWS/LF_ROWS- - 3 0 SQL> analyze index pk_t_test validate structure; Index analyzedSQL> select height,DEL_LF_ROWS/LF_ROWS from index_

4、stats; HEIGHT DEL_LF_ROWS/LF_ROWS- - 3 0.0777430939338362三:重建索引的方式 1:drop 原来的索引,然后再创建索引; 2:alter index indexname rebuild (online); 方式一:耗时间,无法在24*7环境中实现 方式二:比较快,可以在24*7环境中实现 建议使用方式二四:alter index rebuid内部过程和注意点 1:alter index rebuild 和alter index rebuil online的区别(1) 扫描方式不同Rebuild以index fast full scan(o

5、r table full scan) 方式读取原索引中的数据来构建一个新的索引,有排序的操作; rebuild online 执行表扫描获取数据,有排序的操作;Rebuild 方式 (index fast full scan or table full scan 取决于统计信息的cost)Eg1:SQL> explain plan for alter index idx_policy_id2 rebuild; Explained SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT-| Id | Operat

6、ion | Name | Rows | Bytes | Cost |-| 0 | ALTER INDEX STATEMENT | | 999K| 4882K| 3219 | 1 | INDEX BUILD NON UNIQUE| IDX_POLICY_ID2 | | | | 2 | SORT CREATE INDEX | | 999K| 4882K| | 3 | INDEX FAST FULL SCAN | IDX_POLICY_ID2 | 999K| 4882K| |-Eg2:SQL> explain plan for alter index idx_policy_id rebuild

7、; ExplainedSQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT-| Id | Operation | Name | Rows | Bytes | Cost |-| 0 | ALTER INDEX STATEMENT | | 2072K| 9M| 461 | 1 | INDEX BUILD NON UNIQUE| IDX_POLICY_ID | | | | 2 | SORT CREATE INDEX | | 2072K| 9M| | 3 | TABLE ACCESS FULL | TEST_INDEX |

8、 2072K| 9M| 461 |Eg3:(注意和Eg1比较)Rebuil online 方式:SQL> explain plan for alter index idx_policy_id2 rebuild online; Explained SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT-| Id | Operation | Name | Rows | Bytes | Cost |-| 0 | ALTER INDEX STATEMENT | | 999K| 4882K| 3219 | 1 | IND

9、EX BUILD NON UNIQUE| IDX_POLICY_ID2 | | | | 2 | SORT CREATE INDEX | | 999K| 4882K| | 3 | TABLE ACCESS FULL | TEST_INDEX2 | 999K| 4882K| 3219 |(2) rebuild 会阻塞dml操作,rebuil online 不会阻塞dml操作;(3) rebuild online时系统会产生一个SYS_JOURNAL_xxx的IOT类型的系统临时日志表,所有rebuild online时索引的变化都记录在这个表中,当新的索引创建完成后,把这个表的记录维护到新的索引中

10、去,然后drop掉旧的索引,rebuild online就完成了。注意点:1, 执行rebuild操作时,需要检查表空间是否足够;2, 虽然说rebuild online操作允许dml操作,但是还是建议在业务部繁忙时间段进行;3, Rebuild操作会产生大量redo log ;五:重建分区表上的分区索引 1:重建分区索引方法: Alter index indexname rebuild partition paritionname tablespace tablespacename; Alter index indexname rebuild subpartition partitioname tablespace tablespacename; Partition name 可以从user_ind_partitions查找 Tablepace 参数允许alter index操作更改索引的存储空间;六:其他 1:truncate 分区操作和trunca

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论