oracle10g系统管理之索引建立的原则

本文介绍了数据库索引的基础概念及不同类型,包括B*-树索引、反向索引和位图索引等,并探讨了单列索引与复合索引的区别。此外,还详细讲解了唯一索引和非唯一索引的特点,以及如何根据实际需求制定合理的索引管理策略。

 

1.         索引       索引是用于加速数据存取的数据库对象。合理地使用索引可以大大降低I/O次数从而提高数据访问性能。

2.         按照存储方式分类:

1)        B*-树索引

2)        反向索引

3)        位图索引

按照索引列的个数:

1)        单列索引

2)        复合索引

按照索引列值的唯一性

1)        唯一索引

2)        非唯一索引

3.         单列索引和复合索引:

单列索引是基于单个列所建立的索引;复合索引是基于两列或多列所建立的索引。可以在同一张表上建立多个索引,但是要求列的组合必须不同,列的顺序不同也可以。

CREATE INDEX emp_idx1 ON emp(ename,job);

4.         唯一索引和非唯一索引

唯一索引是索引列值不能重复的索引;非唯一索引是索引列值可以重复的索引。无论是唯一索引还是非唯一索引,索引列都允许null。当定义主键约束和唯一约束时,Oracle都会自动在相应的约束列上建立唯一索引。

5.         索引管理的指导方针

1)        使用Oracle工具SQL*LoaderIMPDPIMP装载数据时,应该先导入数据,后建立索引。

2)        索引正确的表和列       建立和规划索引时,必须选择合适的表和列。如果选择的表和列不合适,不仅无法提高查询速度,反而会极大地降低DML操作的速度。建立索引的指导方针如下:

A.        索引经过建立在WHERE子句经常应用的表列上。如果在大表上频繁使用某列或者几列作为条件执行索引操作,并且检索操作行数低于总行数的15%,那么应该考虑在这些列上建立索引。

B.        为了提高多表连接的性能,应该在连接列上建立索引。

C.        不要在小表上建立索引。

D.       如果经常基于某列或某几列执行排序操作,那么通过这些列上建立索引,可以加快数据排序的速度。

3)        限制表的索引个数       索引主要用于加速查询速度,但会降低DML操作的速度。索引越多,DML操作的速度越慢,尤其会极大影响INSERT操作和DELETE操作的速度。因此规划索引时,必须仔细权衡查询和DML的需求。

4)        使用NOLOGING选项建立索引

5)        建立索引时,既可以将索引和基表放在相同的表空间中,也可以放在不同的表空间中。将表和索引部署到相同表空间中,可以简化表空间的管理。将表和索引部署到不同表空间,可以提高性能。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值