概述
很多情况下,需要索引或重建一些大表,不当的操作可能会影响生产环境。为此,我编写了数据库索引生成和索引重建更改的规范。
一、索引创建前检查
1、检查表段大小:
select segment_name, bytes/1024/1024 MB from user_segments where segment_name='<表名>';
2、检查表列不同值分布情况:
select a.table_name,
a.column_name,
a.num_distinct,
round * 100 / b.num_rows) "distinct percent%"
from user_tab_columns a, user_tables b
where a.table_name = b.table_name
and a.table_name = 'ORDER_RELEASE_STATUS';
这里可以看到一般不同值分布占全表记录数,如果percent%达到15%以上就可以建立索引提高效率
二、索引创建
因为之前数据库规范没建立,居然有一张表建立了255个字段,且索引建了50多个…
1、创建单列索引:
create index index_name on table(col1) tablespace tbs_name [nologging] [online] [parallel n];
alter index index_name noparallel ;
2、创建复合索引:
create index index_name on table(col1,col2,…) tablespace tbs_name [nologging] [online][parallel n];
alter index index_name noparallel ;
3、创建唯一索引:
create unique index index_name on table(col1,col2,…) tablespace tbs_name [nologging][online][parallel n];
alter index index_name noparallel ;
4、创建分区索引:
Local 索引:
小表:
create index index_name on table(col1) local;
大表:
1)create index index_name on table(col1) local unusable;
2)alter index index_name rebuild partition p_name [parallel n];
alter index index_name noparallel ;
3)execute dbm(ownname=> '',indname=> '',)
Global 索引:
create [global] index index_name on table(col);
5、删掉创建的索引
drop index index_name;
三、索引重建
1、重建普通索引:
alter index index_name rebuild tablespace w_data [online][ parallel n][ nologging];
alter index index_name noparallel ;
2、重建分区索引:
alter index index_name rebuild partition partition_name tablespace tbs_name[online][parallel n][nologging];
alter index index_name noparallel ;
四、数据库索引检查
1、普通索引检查
select index_name,table_name,status,tablespace_name from user_indexes;
status 为 valid 表示索引状态正常。
2、分区索引检查
select index_name,partition_name,status,tablespace_name from user_ind_partitions;
status 为 usable 表示索引状态正常。
最后提一点,大家在建索引后一定要注意观察数据库 SQL 执行计划是否 OK,执行效率是否提高,然后监控下应用是否正常,不能创建完就拍拍屁股走人,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
1.文章《(如何建立索引表)如何给表建立索引》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《(如何建立索引表)如何给表建立索引》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好