Oracle索引技术之如何建立最佳索引

php中文网
发布: 2016-06-07 17:59:14
原创
1731人浏览过

1、明确地创建索引 create index index_name on table_name(field_name) tablespace tablespace_name pctfree 5 initrans 2 maxtrans 255 - storage ( minextents 1 maxextents 16382 pctincrease 0 ); 2、创建基于函数的索引 常用与UPPER、LOWER、TO_CHAR(da

1、明确地创建索引

create index index_name on table_name(field_name)

tablespace tablespace_name

pctfree 5

initrans 2

maxtrans 255

-

storage

(

minextents 1

maxextents 16382

pctincrease 0

);



2、创建基于函数的索引

常用与UPPER、LOWER、TO_CHAR(date)等函数分类上,例:

create index idx_func on emp(UPPER(ename)) tablespace tablespace_name;

3、创建位图索引

对基数较小,且基数相对稳定的列建立索引时,首先应该考虑位图索引,例:

create bitmap index idx_bitm on class (classno) tablespace tablespace_name;

4、明确地创建唯一索引

可以用create unique index语句来创建唯一索引,例:

create unique index dept_unique_idx on dept(dept_no) tablespace idx_1;

5、创建与约束相关的索引

可以用using index字句,为与unique和primary key约束相关的索引,例:

alter table table_name

add constraint PK_primary_keyname primary key(field_name)

using index tablespace tablespace_name;

如何创建局部区索引?

1)基础表必须是分区表

2)分区数量与基础表相同

3)每个索引分区的子分区数量与相应的基础表分区相同

4)基础表的自分区中的行的索引项,被存储在该索引的相应的自分区中,例如

create index TG_CDR04_SERV_ID_IDX on TG_CDR04(SERV_ID)

Pctfree 5

Tablespace TBS_AK01_IDX

Storage(

MaxExtents 32768

PctIncrease 0

FreeLists 1

FreeList Groups 1

)

local

/



如何创建范围分区的全局索引?

基础表可以是全局表和分区表

create index idx_start_date on tg_cdr01(start_date)

global partition by range(start_date)

(partition p01_idx vlaues less than ('0106')

partition p01_idx vlaues less than ('0111')

...

partition p01_idx vlaues less than ('0401'))

/

如何重建现存的索引?

重建现存的索引的当前时刻不会影响查询

重建索引可以删除额外的数据块

提高索引查询效率

alter index idx_name rebuild nologging;

对于分区索引

alter index idx_name rebuild partition partition_name nologging;

删除索引的原因?

1)不再需要的索引

2)索引没有针对其相关的表所发布的查询提供所期望的性能改善

3)应用没有用该索引来查询数据

4)该索引无效,必须在重建之前删除该索引

5)该索引已经变的太碎了,必须在重建之前删除该索引

语句:

drop index idx_name;

drop index idx_name partition partition_name;

建立索引的代价?

基础表维护时,系统要同时维护索引,不合理的索引将严重影响系统资源,

主要表现在CPU和I/O上。

插入、更新、删除数据产生大量db file sequential read锁等待。
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号