暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
应该在ORACLE数据库的哪些字段上建立索引where.doc
11
21页
1次
2025-04-19
免费下载
给数据库建索引的规则
博客分类:

建立索引常用的规则如下:
、表的主键、外键必须有索引;
、数据量超过

的表应该有索引;
、经常与其他表进行连接的表,在连接字段上应该建立索引;
、经常出现在

子句中的字段,特别是大表的字段,应该建立索引;
、索引应该建在选择性高的字段上;
、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
、正确选择复合索引中的主列字段,一般是选择性较好的字段;
、复合索引的几个字段是否经常同时以

方式出现在

子句中?单
字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段
索引;
、如果复合索引中包含的字段经常单独出现在

子句中,则分解为多个
单字段索引;
、如果复合索引所包含的字段超过
个,那么仔细考虑其必要性,考虑减少
复合的字段;
、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合
索引;
、频繁进行数据操作的表,不要建立太多的索引;
、删除无用的索引,避免对执行计划造成负面影响;
以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,
对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引
与不充 分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加
存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过
多的复合索引, 在有单字段索引的情况下,一般都是没有存在价值的;相反,
还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大
-------------------------------------------------------------------------------------------------------------------
ORACLE
查询的优化及
索引
作者:

提交日期:
  !!
申明
!

下面内容来自
""#!$$%%%&'#())*&+$,-($().*%&*#/
0('1

&
合理使用索引

索引是数据库中重要的数据结构,它的根本目的就是为了提高查询效率。
大多数的数据库产品都采用
23
最先提出的
243
索引结构。索引的使用
要恰到好处,其使用原则如下:
5
经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接
的字段则由优化器自动生成索引。
5
频繁进行排序或分组(即进行
#)-
')-
操作)的列上建
立索引
5
条件表达式中经常用到的不同值较多的列建立检索,不同值少的
不要建立索引。比如雇员表的“性别”列只有“男”与“女”两个不同值,因
此就无必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低
更新速度。
5
如果待排序的列有多个,可以这些列建立复合索引(
+#'
('0
)。
5
使用系统工具。如
2+(0
数据库有一个
"),
工具,可以可疑
的索引进行检查。一些数据库服务器,索引可能失效或者因为频繁操作
而使得读取效率降低,如果一个使用索引的查询不明不白地慢下来,可以试着
"),
工具检查索引的完整性,必要时进行复。另外,数据库表更新
大量数据,删除重建索引可以提高查询速度。

67
下面两条
select
句中
!
 select8+")where9':1'9';1<
 select8+")where9';1'9':1<

如果数据表中的数据
9'
;1=
一条
select
句要比第二
select
句效率高的多,因为第二
select
句的一个条件耗费了大量的
系统资源

一个原则:
where
子句中应最具限制性的条件面。

67
下面的
select
句中
!
 select8+")where1>')1>'1><

有索引
('06=)=7
,则
where
子句中字段的序应索引中字段
序一

第二个原则:
where
子句中字段的序应索引中字段序一


以下假设
9'
一索引
2
9'
非唯一索引
2
67 select9'=9'+")where9'1?*'?
 select8+")where9'1?*'?

因为索引扫描后要多一
@2
访问

67 select9'=9'+")where9';1?*'?
select9'=9'+")where9';?*'?

因为者可以速定索引。

67 select9'=9'+")where9'(,?@A?
 select9'=9'+")where9'(,?A@?

因为者不使用索引。

67
使用数如:
select9'=9'+")where##69'71?@3?
不使用索
引。

如果一个表有两记录,建不使用数;如果一个表有五万条以
,严格禁止使用记录以下没有限制

67
值不索引中存储,所以
 select9'=9'+")where9'(*B"C
不使用索引。

67
式如
 select9'=9'+")where9'D1?E3?
不使用索引。

似地
 select9'=9'+")where9'"(6?3?=?F?7
不使用索
引。

67
多列索引,只有查询中索引用于条件时,索引使用。

673 G
32
等函数,如
Select+069'7+")
使用索引。所以,如果需要对字段
of 21
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。