`
kidiaoer
  • 浏览: 821874 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Oracle的索引总结

阅读更多
Oracle的索引总结


   1. 索引与日志
       
   2. 索引的类型
          * B-树索引:几乎所有的关系型数据库中都有b*tree类型索引,也是被最多使用的。其树结构与二叉树比较类似,根据rid快速定位所访问的行。
          * 反转键索引:反转了b*tree索引码中的字节,是索引条目分配更均匀,多用于并行服务器环境下,用于减少索引叶的竞争。
          * 降序索引:8i中新出现的索引类型,针对逆向排序的查询。
          * 位图索引:使用位图来管理与数据行的对应关系,多用于OLAP系统。
          * 基于函数的索引:这种索引中保存了数据列基于function返回的值,在select * from table where function(column)=value这种类型的语句中起作用。
          * HASH索引
          * 索引编排表
          * 分区索引
          * 本地和全局索引
   3. 创建索引的原则
         1. 需要平衡query合DML的需要,常用于(子)查询的表应建立索引;
         2. 把索引建到不同的表空间中;
         3. 用统一的extent大小: 五个block的倍数或者tablespace指定的MINIMUM EXTENT的倍数;
         4. 创建索引考虑用NOLOGGING参数,重建索引的时候也一样;
         5. 创建索引时INITRANS值应该比相应的table的值高一些;
         6. 对常用SQL语句的where条件中的列建立唯一索引或组合索引,组合条件查询中相应的组合索引更有效;
         7. 对于组合索引,根据列的唯一值概率,安排索引顺序;
         8. 如果一个列具有很低的数据基数,并且或者可具有空值,不应作为索引列;
         9. 如果where语句中不得不对查询列采用函数查询,如upper函数,最好建立相应函数索引;
        10. 对于低基数集的列,并包含OR等逻辑运算,考虑用Bitmap索引,对于从大量行的表中返回大量的行时也可以考虑Bitmap索引;
        11. 避免在有大量并发DML运算的表中使用 Bitmap索引;
        12. 能用唯一索引,一定用唯一索引
        13. 能加非空,就加非空约束
        14. 一定要统计表的信息,索引的信息,柱状图的信息。
        15. 联合索引的顺序不同,影响索引的选择,尽量将值少的放在前面
        16. 索引不是越多越好,特别是大量从来或者几乎不用的索引,对系统只有损害。OLTP系统每表超过5个索引即会降低性能。
        17. 很多时候,单列索引不如复合索引有效率。
        18. 用于多表连结的字段,加上索引会很有作用。
        19.  
   4. 常用命令
         1. 创建索引
            create [unique] index 索引名 on table 表名(列名1,列名2……) where 条件;
         2. 释放多余空间
            alter index 索引名 deallocate unused;
         3. 重建索引
            alter index 索引名 rebuild;
         4. 删除索引
            drop index 索引名
         5. 显示表的所有索引
            select index_name,index_type,uniqueness from dba_indexes where owner = “user” and table_name=”table_name”;
         6. 显示索引列
            select column_name,column_position,column_length from dba_ind_columns where index_owner = “user” and index_name= “”;
   5. 其他
分享到:
评论

相关推荐

    oracle索引失效的总结

    ### Oracle索引失效的原因及解决方法 在Oracle数据库中,索引是提高查询效率的关键工具之一。然而,在实际的应用过程中,由于多种原因可能会导致索引失效,从而影响系统的性能。本文将详细介绍Oracle索引失效的一些...

    ORACLE重建索引总结

    本文主要总结了重建Oracle索引的相关知识点。 一、重建索引的前提条件 当表上的数据频繁进行`UPDATE`和`DELETE`操作,或者执行了`ALTER TABLE ... MOVE`操作导致ROWID改变时,可能需要考虑重建索引。这些操作可能...

    oracle约束和索引笔记

    本笔记主要探讨了两个关键概念:约束和索引,这些都是Oracle数据库中的基础但至关重要的元素。 **1. 约束(Constraints)** 约束是Oracle数据库中用于确保数据完整性的规则。它们分为以下几种类型: - **非空约束...

    09 oracle的索引 PPT

    总结,Oracle的索引是提升数据库性能的关键工具,理解索引的工作原理,合理设计和管理索引,能有效优化数据库的查询性能,但同时也要注意其带来的额外存储和维护成本。在实际应用中,需要根据业务需求和查询模式,...

    Oracle 索引

    总结来说,Oracle索引是提高数据库查询效率的关键技术,包括B树、位图、函数、唯一和复合等多种类型。理解这些索引的特性和适用场景,以及如何有效地管理它们,对于优化数据库性能和提升应用响应速度具有重要意义。

    oracle学习总结(适合刚学习oracle的人)

    本文将根据"oracle学习总结(适合刚学习oracle的人)"这一主题,深入探讨Oracle数据库的基础知识,帮助初学者建立起对Oracle的基本理解。 1. **Oracle简介**:Oracle数据库是由美国甲骨文公司开发的一款产品,它...

    Oracle数据库索引优化方法探析.pdf

    Oracle 数据库索引优化方法探析 Oracle 数据库索引优化方法探析是指通过对 Oracle 数据库索引的分析和优化,以提高数据库的查询效率和性能。 Oracle 数据库索引是一种数据结构,用于快速访问数据库表的特定信息。...

    oracle 索引类型

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的索引类型以优化查询性能。索引是数据库中的关键元素,它们能够加速对数据表中特定记录的查找。本篇将深入探讨Oracle中的主要索引类型,以及它们的...

    oracle创建索引规律总结

    oracle创建索引很好的参考资料,好的索引能够非常大的提高数据库的查询速度

    oracle 索引创建

    ### Oracle索引创建详解 #### 一、Oracle索引的重要性及基本概念 在数据库系统中,索引是一种用于提高数据检索速度的数据结构。对于大型数据库系统而言,索引的合理设计与使用对于提升查询性能至关重要。Oracle...

    Oracle解决索引碎片功能.txt

    ### Oracle解决索引碎片功能详解 #### 索引碎片概念 在Oracle数据库中,索引碎片是指由于频繁的数据插入、删除操作导致索引结构变得不连续和分散的现象。这种现象会降低查询性能,增加数据库维护成本。因此,了解...

    oracle rac环境下索引热块的处理思路

    Oracle RAC 环境下索引热块的处理思路 Oracle RAC 环境下索引热块的处理思路是指在 Oracle RAC 环境下,due to the high concurrency and parallelism of multiple instances, the index block contention issue ...

    oracle索引分析说明

    总结来说,理解Oracle索引的存储原理和`clustering_factor`的重要性有助于数据库管理员优化查询性能。通过监控和分析`clustering_factor`,可以判断索引是否有效地支持了查询模式,并据此进行必要的索引调整,例如...

    Oracle培训 关于索引等详细信息的讲解

    总结,Oracle数据库中的索引是一个复杂而重要的主题,理解并合理运用索引策略是优化数据库性能的关键。在实际工作中,我们需要根据业务需求,结合不同类型的索引,以及数据库的使用模式,做出明智的决策,以实现最佳...

    分区索引,本地索引,全局索引的区别

    在Oracle数据库中,分区索引是针对分区表的一种特殊索引类型,它可以显著提高对于大规模数据集的查询性能。根据索引是否与表的分区策略相匹配,分区索引可以分为两大类:本地索引(Local Index)和全局索引(Global ...

    oracle索引类型和扫描方式

    ### Oracle索引类型及其扫描方式详解 #### 一、引言 在Oracle数据库管理系统中,索引是提高数据检索效率的重要工具。通过合理地创建和使用索引,可以显著提升查询性能,尤其是在处理大规模数据集时更为明显。本文将...

    Oracle重构索引

    #### 一、Oracle索引重构概述 在日常的数据库维护工作中,我们可能会遇到数据库中的索引变得杂乱无章的情况。这种情况可能会导致查询性能下降,因此对索引进行重构是非常必要的。Oracle提供了多种方法来帮助我们...

    索引优化原则及Oracle中索引总结

    Oracle索引建立原则  · 确定针对该表的操作是大量的查询操作还是大量的增删改操作。  · 尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。  · where语句中...

    Oracle索引的一点探究

    总结来说,Oracle索引对于提高特定列的查询性能至关重要。然而,它并不会自动提升所有查询的速度,尤其是当查询涉及未索引的列或者复杂的组合条件时。因此,明智地设计和使用索引是优化数据库性能的关键。同时,理解...

Global site tag (gtag.js) - Google Analytics