加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

超详细的Oracle数据库索引创建及索引重建变更规范

发布时间:2019-08-21 17:53:58 所属栏目:编程 来源:波波说运维
导读:许多时辰我们都必要对某些大表去建索引可能重建,假如不合法操纵就很有也许会影响到出产情形,针对这个方面我写了一些关于数据库索引建设及索引重建改观的类型,仅供参考。 一、索引建设前搜查 1. 搜查表段巨细: selectsegment_name,bytes/1024/1024MBfro
副问题[/!--empirenews.page--]

许多时辰我们都必要对某些大表去建索引可能重建,假如不合法操纵就很有也许会影响到出产情形,针对这个方面我写了一些关于数据库索引建设及索引重建改观的类型,仅供参考。

一、索引建设前搜查

1. 搜查表段巨细:

  1. select segment_name, bytes/1024/1024 MB from user_segments where segment_name='<表名>'; 

超具体的Oracle数据库索引建设及索引重建改观类型

2. 搜查表列差异值漫衍环境:

  1. select a.table_name, 
  2.  a.column_name, 
  3.  a.num_distinct, 
  4.  round(a.num_distinct * 100 / b.num_rows) "distinct percent%" 
  5.  from user_tab_columns a, user_tables b 
  6.  where a.table_name = b.table_name 
  7.  and a.table_name = 'ORDER_RELEASE_STATUS'; 

超具体的Oracle数据库索引建设及索引重建改观类型

这里可以看到一样平常差异值漫衍占全表记录数,假如percent%到达15%以上就可以成立索引进步服从

超具体的Oracle数据库索引建设及索引重建改观类型

二、索引建设

由于之前数据库类型没成立,居然有一张表成立了255个字段,且索引建了50多个...

超具体的Oracle数据库索引建设及索引重建改观类型

1. 建设单列索引:

  1. create index index_name on table(col1) tablespace tbs_name [nologging] [online] [parallel n]; 
  2. alter index index_name noparallel ; 

2. 建设复合索引:

  1. create index index_name on table(col1,col2,…) tablespace tbs_name [nologging] [online][parallel n]; 
  2. alter index index_name noparallel ; 

3. 建设索引:

  1. create unique index index_name on table(col1,col2,…) tablespace tbs_name [nologging][online][parallel n]; 
  2. alter index index_name noparallel ; 

4. 建设分区索引:

Local 索引:

  1. 小表: 
  2. create index index_name on table(col1) local; 
  3. 大表: 
  4. 1)create index index_name on table(col1) local unusable; 
  5. 2)alter index index_name rebuild partition p_name [parallel n]; 
  6. alter index index_name noparallel ; 
  7. 3)execute dbms_stats.gather_index_stats(ownname=> '',indname=> '',) 

Global 索引:

  1. create [global] index index_name on table(col); 

5. 删掉建设的索引

  1. drop index index_name; 

三、索引重建

1. 重建平凡索引:

  1. alter index index_name rebuild tablespace w_data [online][ parallel n][ nologging];  
  2. alter index index_name noparallel ; 

2. 重建分区索引:

  1. alter index index_name rebuild partition partition_name tablespace tbs_name[online][parallel n][nologging]; 
  2. alter index index_name noparallel ; 

四、数据库索引搜查

1. 平凡索引搜查

  1. select index_name,table_name,status,tablespace_name from user_indexes;  

status 为 valid 暗示索引状态正常。

超具体的Oracle数据库索引建设及索引重建改观类型

2. 分区索引搜查

  1. select index_name,partition_name,status,tablespace_name from user_ind_partitions;  

status 为 usable 暗示索引状态正常。

超具体的Oracle数据库索引建设及索引重建改观类型

(编辑:河北网)

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

热点阅读