ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle数据库索引管理规范

Oracle数据库索引管理规范

原创 Linux操作系统 作者:eymit 时间:2013-05-30 17:21:36 0 删除 编辑

根据官方文档和平时自己经验,总结一下oracle数据库索引管理规范,可能不是很全,下次再补充一些

 

1   索引创建规范和适用情况

 

1.       对于经常查询的大表,如果返回数据少于15%,需要创建索引(可根据字段和全表描速度做调整,全表扫描越快,这个值越低)

2.  表的主键和唯一健会自动创建索引,外键一般情况下考虑创建索引

·         外键不创建索引的后果(死锁);

·         对于外键,业务表一般需要创建索引(频繁发生DML操作的表);

·         对于代码表一般可以不创建创建索引(数据基本不会发生改变的表);

3.  在经常使用的关联查询的连接字段上面创建索引,以提高性能。

4.  经常查询且部分查询值选择性很强需要创建索引

5.  列中包含很多空值,但是查询条件都是需要有值的,需要创建索引

6.  复合索引的建立

  • 正确选择复合索引中的第一个字段,一般是选择性较好的且在where 子句中常出现的字段上;
  • 复合索引的几个字段是否经常同时以and方式出现在where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引;
  • 如果复合索引中包含的字段经常单独出现在where子句中,则分解为多个单段索引,同时考虑删除复合索引;
  • 如果复合索引所包含的字段超过3 个,那么仔细考虑其必要性,考虑减少复合的字段;

 

2   不适合索引的情况

1.  包含很多空值,但是经常查询的语句中返回条件包含了空值的

2.  Longraw字段不能创建索引

3.  表非常小,如少于500-1000行数据,不需要创建索引

 

 

 

3   索引维护

1.  定期检查不使用的索引,对于不使用的索引应该进行删除,分析没有效果的索引,定期进行整理

2.  定期检查索引的碎片情况,对于碎片太多的索引进行重建



参考文档:http://docs.oracle.com/cd/E11882_01/server.112/e25494/indexes002.htm


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21605631/viewspace-762530/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-05-09

  • 博文量
    65
  • 访问量
    331001