`
xiaoyaolong
  • 浏览: 28995 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

oracle中索引的学习

阅读更多
索引是与表关联的可选结构,它只是一种快速访问数据的途径,它只影响执行速度.
索引根本目地:提高查询效率

1. 合理使用索引的原则:
a) 在条件表达示中经常用到的不同值效多的列上建立索引
b) 在不同值少的列上,不要创建索引或位图索引.如:’姓别’列上只有’男’和’女’,不要在这样的列上创建索引,这样不会提高查询效率.
c) 在经常建立连接,但没有指定外键的列上建立索引
d) 在频繁进行排序和分组的列上建立索引
e) 如果排序的列有多个可以建立分组索引
f) 如果条件表达示经常对某一列应用某个函数后指定查询,可以用函数索引

2. 下列情况下建立了索引,但不会此使用索引
a) 存在数据类型隐式转换时
如:select * from emp where empno=’123’这里存在字符转换成数字,不会使用索引
b) 在建立索引的某一列上进行算术运算,不会使用索引
如:select * from emp where sal*2<1000
如果改成select * from emp where sal<1000/2这样就可以使用到索引
c) 使用’<>’不等号时,不会使用索引
d) 使用substr字符串函数时,不会使用索引
e) ‘%’通配符放在第一位时, 不会使用索引
f) 使用‘||’字符串连接符时, 不会使用索引

3. 标准索引语法
创建索引语法:
Create index 索引名
On 表名(列名1,列名2……列名N)
[tablespace 为索引指定的表空间名];

重建索引语法:
Alter index 索引名 rebuild

删除索引语法:
Drop index 索引名

4. 唯一索引
索引可以是唯一的,也可以是非唯一的.唯一索引可以确保在定义索引的列中,表的任意两行的值不相同.非唯一索引没有在列值上规定此限制,orcale自动为表的主键列创建唯一索引.
创建唯一索引语法:
Create unique index 索引名
On 表名(列名)

5. 组合索引
组合索引是在表中的多个列上创建的索引.组合索引中列的顺序是任意的,不必是表中相邻的列.如果select语句中的where子句引用了组合索引中的所有列或大多数列,则组合索引可以提高数据检索速度.创建组合索引时,应注意定义中使用的列的顺序.通常最频繁访问的列应放置在列表的最前面.
创建组合索引语法:
Create index 索引名
On 表名(列名1,列名2……列名N)

6. 反向索引
反向索引是一种特殊的索引,在索引基于含有序数的列时非常有用,如果一个标准索引基于一个含有这种数据的列,往往因为数据过于密集而降底读取性能.反向索引通过简单的反向被索引的列中的数据来解决问题,首先反向每个列键值的字节,然后在反向后的新数据上进行索引,而新数据在值的范围上分布通常比原来的有序数更均匀.因此反向键索引通常建立在一些值连续增长的列上
创建反向键索引语法:
Create index 索引名
On 表名(列名) reverse

重建反向键索引语法:
Alter index 索引名 rebuild noreverse

7. 位图索引
使用位图索引适应于低基数列,也就是列的不同值数目比表行数少的列.如果某个列的值重复了超过一百次,则可以考虑在该列上创建位图索引.位图索引不应当用在频繁发生insert update delete操作上.
创建位图索引语法:
Create bitmap index 索引名
On 表名(低基数列的列名)

8. 索引组织表
索引组织表的数据存储在与其关联的索引中,索引中存储的是行的实际数据而不是ROWID,对表的数据进行插入,更新或删除,只会导致对索引的更新.
创建索引组织表的语法:
Create table 表名
(
ID number(4) primary key,
列名 数据类型
)organization index
普通表与索引表的比较
普通表 索引表
ROWID唯一的标识行 主键唯一的标识行
隐式的ROWID列 没有隐式的ROWID列
基于ROWID访问 基于主键访问
顺序扫描返回所有的行 完全索引扫描返回所有的行,并按主键顺序排列
支持分区 不支持分区

9. 获取索引信息
USER_INDEXS 查询此表可获取有关当前用户已创建的索引的详细信息
USER_IND_PARTITIONS 查询此表可获取有关用户已创建的分区索引的详细信息
USER_IND_COLUMNS 查询此表可获取有关列(用记的索引是基于这些列创建的)的详细信息
例如:
Select INDEX_NAME(索引名),TABLE_NAME(与索引相关的表名),COLUMN_NAME(建有索引的某一列) from USER_IND_COLUMNS

10. 基于函数的索引
有时可能要在某一列上常用到某一函数,可以通过建立函数索引来提高查询效率,但不能在聚合函数上建立索引.不能在LOB类型蝗列,REF类型的列或包含LOB或REF对象类型上创建函数索引.
创建函数索引语法:
Create index 索引名 on 表名 (函数名(参数));
创建表达示索引语法:
Create index 索引名 on 表名 (表达示);

分享到:
评论

相关推荐

    oracle的索引学习

    本篇文章将深入探讨Oracle索引的学习,重点关注索引的原理、类型、优缺点以及如何使用和分析执行计划。 首先,理解索引的基本概念。索引是一种特殊的数据结构,它存储在表空间中,用于加速对表数据的访问。当执行...

    oracle的索引初步学习.doc

    #### 一、Oracle索引概览 索引在Oracle数据库中扮演着极其重要的角色,它是提高数据检索速度的关键技术之一。简单来说,索引类似于书籍中的目录,可以帮助快速定位数据的位置,从而显著提升查询效率。 #### 二、...

    oracle 基本索引原理

    oracle 基本索引原理,oracle 学习真必不可少的资料。

    Oracle学习笔记(索引)

    Oracle学习笔记(索引),有具体的代码案例,创建索引,删除索引,重建索引等等

    ORACLE索引详解及SQL优化

    本文将深入探讨Oracle索引的原理、创建方法,并结合SQL优化策略,帮助你提升数据库查询速度,降低资源消耗。 首先,我们要理解索引的基本概念。在数据库中,索引类似于书籍的目录,它为数据提供快速访问的途径。...

    Oracle 索引练习语句程序

    ### Oracle索引的基本概念 #### 1. 创建索引 索引是数据库中一种用于提高数据检索速度的数据结构。通过创建索引,可以显著提升查询性能。例如,在`student`表上创建一个基于`sno`列的索引: ```sql CREATE INDEX ...

    oracle索引学习初步

    本文将深入探讨Oracle索引的学习初步,帮助读者理解其原理、类型、创建与管理,以及如何优化查询。 一、索引原理 索引就像是书籍的目录,允许我们快速定位到所需信息,而非逐页翻阅。在Oracle数据库中,索引通过...

    Oracle索引(创建技巧)

    Oracle索引的创建、简介、技巧,希望可以给学习Oracle的人带来帮助!

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

    5. **表和索引**:表是Oracle中的基本数据结构,索引则用于提高查询速度。理解如何创建、修改和删除表,以及何时创建和使用索引,是提升数据库性能的关键。 6. **PL/SQL**:Oracle的编程语言PL/SQL是SQL的扩展,它...

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

    在Oracle数据库中,索引分为B树索引、位图索引、函数索引等多种类型,每种都有其特定的应用场景和优缺点。 二、B树索引 B树索引是最常见的索引类型,适用于全值匹配查询。在Oracle中,B树索引由一个或多个索引块...

    ORacle、索引、数据优化学习文档

    Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据重要地位。它提供了高效的数据存储和处理能力,而索引则是优化查询性能的关键技术。本篇文档主要涉及Oracle数据库的索引和数据优化...

    从零开始学习ORACLE

    对于初学者来说,从零开始学习Oracle需要掌握一系列的基础知识,这些知识涵盖了数据库的基本概念、Oracle的架构、SQL语言以及数据库管理等方面。 首先,理解数据库的基本概念至关重要。数据库是一个组织和存储数据...

    oracle sql语句学习

    在Oracle中,SQL用于创建、修改和查询数据库对象,如表、视图、索引等。基础的SQL语句包括: 1. **SELECT**:用于从数据库中检索数据,是最常用的SQL语句。可以指定字段、筛选条件、排序方式、分组规则等。 2. **...

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

    总结,Oracle索引优化是一个涉及多方面因素的过程,包括索引类型选择、设计策略、维护以及特定于Oracle的技术。理解并熟练运用这些知识,能有效提升数据库的性能,降低系统响应时间,从而提高用户满意度。在实践中,...

    Oracle数据库 资料学习

    在Oracle数据库的学习中,你需要掌握以下几个关键知识点: 1. **SQL基础**:Oracle数据库是基于SQL的,因此理解和熟练使用SQL语句是基础,包括SELECT用于查询数据,INSERT用于插入数据,UPDATE用于更新数据,DELETE...

    Oracle11g学习笔记

    Oracle11g支持多种类型的索引,包括B树索引、位图索引和函数索引。理解何时使用哪种类型的索引,以及如何创建和优化索引,对于数据库性能至关重要。 数据库安全性是另一个关键话题。Oracle11g提供了用户管理和权限...

    oracle 10G学习完全图解

    《Oracle 10G学习完全图解》是针对Oracle数据库初学者和进阶者的一份珍贵资源,它包含了从安装到使用的全方位指导。Oracle 10G是Oracle公司推出的一款重要版本,它在数据库管理、性能优化、安全性等方面都有显著提升...

    oracle学习视屏

    5. 性能监控与调优:使用Oracle的性能分析工具(如SQL*Plus、 tkprof 和AWR报告)进行性能监控,并学习如何通过调整SQL语句、索引或系统参数来优化性能。 6. 集群与高可用性:理解Oracle Real Application Clusters...

    Tianlesoftware Oracle 学习手册(v1.0)高清完整PDF版

    以上是从Tianlesoftware Oracle 学习手册(v1.0)中提取的部分关键知识点,涵盖了OLTP与OLAP的基本概念以及Oracle索引的相关介绍。这些知识点为Oracle初学者提供了一个良好的起点,帮助他们更好地理解和掌握Oracle...

    ch06 oracle索引

    标题中的"ch06 oracle索引"表明我们将探讨Oracle数据库中的索引机制,这在数据库管理、查询优化以及性能提升方面具有重要意义。Oracle索引是一种数据结构,它能加速对表中数据的查找,提高查询速度,降低I/O操作,...

Global site tag (gtag.js) - Google Analytics