`

Oracle联合索引

阅读更多
Oracle 联合索引
分类: Oracle 2012-12-08 09:35 2110人阅读 评论(0) 收藏 举报
我现在用的是oracle 9i
1.一个表建立多少个索引比较合适?比如说不大于5个 
    这个没有定论,楼主要综合查询效率和dml效率自己确定,索引可以加快select的查询速度,但也会降低delete,insert和update等dml语句的执行速度。
2.联合索引比单索引的效率高么?
    如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高,因为通过多个条件可以从索引中过滤得到更少的记录条数,也就减少了需要回表扫描的次数,甚至可以直接在联合索引中得到所查的所有结果,则不再需要回表。
    但是由于多列的联合索引肯定要比单列索引大,也就是说同样的索引需要存储的物理块要多于单列索引,所以,如果查询中只出现了联合索引中的某一列,则其效率不如单列索引。
3.compress 这个压缩 ,能起到什么作用?
    没研究过
4.上网上查资料时,都说oracle使用联合索引需要前导列,这个和版本有关系吗?
    前导列跟版本没有关系。
    前导列的概念是这样的,如果建立了f1,f2上的联合索引,则在查询时必须要用到f1,也就是所谓的前导列,该索引才会有效,因为索引是按照前导列排序的,如果where条件谓词中没有前导列,则需要执行索引扫描才能得到想要的结果,这种情况下其效率往往较差。
5.如果不需要前导列的话,reverse 这个反转 又起到什么作用呢?
    鉴于前面描述的前导列的概念,我们考虑如下表存储table(f1,f2);
   aa  1
   ab  2
   ac  3
   ad  4
   ae  5
   如果我们对表table建立f1上的普通索引,由于按照f1进行排序,所以针对where f1=ad则需要遍历所有的a开始的索引,而如果对f1建立reverse索引,则由于da只有一个,则可以更快的得到需要的结果。
分享到:
评论

相关推荐

    Oracle 索引 详解

    Oracle 索引详解 Oracle 索引是数据库性能优化的重要工具,它可以大大加快数据的检索速度,提高系统的性能。但是,索引也存在一些缺陷,例如创建索引和维护索引要耗费时间,索引需要占物理空间,等等。在本文中,...

    Oracle_Index 索引

    Oracle_Index 索引

    Oracle复合索引与空值的索引使用问题小结

    于是手动测试,环境采用Oracle自带的scott用户下的emp表。 1.首先查看如下语句的执行计划(此时表只有主键索引): 2.添加IX_TEST(deptno,comm)后查看执行计划: 发现依然是全表扫描。 3.为deptno列添加非空约束...

    [Oracle]如何在亿级记录表中创建索引

    ### Oracle中亿级记录表创建索引的知识点详解 #### 一、背景介绍 在Oracle数据库中处理亿级数据量的表时,合理的索引设计是优化查询性能的关键因素之一。索引能够加快数据检索的速度,减少I/O操作次数,但同时也...

    Oracle优化全攻略二【Oracle 如何使用索引】.docx

    5. **INDEX SKIP SCAN**:在联合索引中,如果前几列的值相同,但后续列的值不同,数据库会跳过相同的前导列,直接找到不同值的记录。 6. **SCAN DESCENDING**:用于降序扫描,例如在ORDER BY子句中指定列的降序排列...

    oracle索引

    2. Clustered索引:在物理存储上,数据按照索引顺序排列,Oracle中默认表是非聚簇索引,但在某些情况下,如频繁联合查询的表,可以考虑创建聚簇索引。 3. Composite索引:由多个列组成的索引,适合多条件查询。 4....

    SQL语句索引优化_sql索引降龙十八掌(Oracle)

    2. 复合索引:包含多个列,适用于多列联合查询。 3. 唯一索引:确保索引列的唯一性,提高查询效率。 4. 避免冗余索引:不要为已有复合索引的列单独创建索引。 三、索引设计原则 1. 索引列的选择:选择经常出现在...

    oracle数据库索引失效

    14. 联合索引的`IS NOT NULL`查询只要涉及到建立的索引列就会使用,但`IN NULL`查询需要与索引的第一列一起使用。 为了避免索引失效,可以采取以下策略: 1. 确保查询条件与索引列匹配,并使用索引的引导列。 2. ...

    Oracle索引详解

    - 在`ON`子句中,可以指定一个或多个列创建联合索引,当使用表达式时,即创建基于函数的索引。 - `TABLESPACE`指定了索引文件存放的表空间,通常索引和表不在同一个表空间时,能提供更高的效率。 - `STORAGE`可以...

    linux_oracle11g_索引笔记

    - **覆盖索引(联合索引)**:一个索引可以包含多个列,这样查询时可以直接从索引中获取所有需要的数据,无需访问表本身。创建联合索引的例子是`ALTER TABLE task ADD INDEX idx_co_po (ctime, utime);`。 - **...

    oracle索引介绍(图文详解)

    2. 复合索引(Concatenated Index):由多个列联合创建的索引。 3. 唯一索引(Unique Index):索引中的所有键值都是唯一的,不允许重复。 4. 非唯一索引(Non-Unique Index):键值可以重复。 5. 函数索引...

    Oracle-On-Nutanix

    Nutanix与Oracle的联合价值主张部分讨论了为什么要在Nutanix平台上运行Oracle数据库。原因包括Nutanix平台的可扩展性、管理简便性、性能优势和成本效益等。Nutanix平台支持灵活的Oracle数据库部署,并提供了一系列...

    浙大oracle11g教程

    本教程由浙江大学联合Oracle公司杭老师共同编纂,是一份非常珍贵的内部学习资料,旨在帮助学习者深入了解Oracle 11g的核心概念和技术。 【Oracle 11g主要特性】 1. **性能提升**:Oracle 11g引入了Real ...

    超详细Oracle教程

    17. 索引:阐述了索引的重要性、类型及其对数据库查询性能的优化作用。 18. 序列、同义词:讲解了Oracle中的序列和同义词的用途和管理方法。 19. PLSQL:详细介绍了过程化SQL语言的编写、执行以及存储过程和函数的...

    韩顺平oracle课堂笔记

    除了上述重点,笔记可能还包含了Oracle的其他重要概念,如索引、触发器、视图、事务管理、备份恢复策略、性能优化技巧等。索引能显著提升查询速度,但过度使用也可能导致写操作变慢;触发器用于在特定事件发生时自动...

    Oracle SQL 官方教程

    这包括联合查询(UNION, UNION ALL, INTERSECT, EXCEPT)来合并多个查询的结果,子查询(嵌套查询)在主查询中执行独立的查询,以及联接操作(INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN)将不同表的数据结合在...

    oracle 全文检索实现

    针对 Oracle 数据库的全文检索,文档结构设计成由两个域 ID 和 CONTENT 组成,ID 根据表名和联合主键组合而成,CONTENT 为表的需要索引的各个列连接得到,每个列之间由空格分隔。 在全文检索时,程序会提取 CONTENT...

    Oracle习题集..

    习题可能涉及选择(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)等基本操作,以及联合(UNION)、子查询、连接(JOIN)等高级查询技巧。 2. 数据类型:Oracle支持多种数据类型,如NUMBER、VARCHAR2、...

Global site tag (gtag.js) - Google Analytics