【转】Oracle索引的类型
数据库的应用类型分为
- OLTP(OnLine Transaction Processing ,联机事务处理):OLTP是传统关系型数据库的主要应用,其主要面向基本的、日常的事务处理,例如银行交易。
- OLAP(OnLine Analysis Processing,联机分析处理):OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
转自:http://blog.csdn.net/kingzone_2008/article/details/8182792
数据存储方式上分类:B-树索引、反向索引、位图索引
- B-树索引建立在重复值很少的列上
- 位图索引建立在重复值很多、不同值相对固定的列上。
索引列的个数分:单列索引、复合索引;
基于函数的索引
-- 基本结构
CREATE [UNIQUE] INDEX index_name
ON table_name (function1, function2, . function_n)
[ COMPUTE STATISTICS ]; -- 例子
CREATE INDEX supplier_idx
ON supplier (UPPER(supplier_name));
位图索引
目前大量使用的索引一般主要是B-Tree索引,在索引结构中存储着键值和键值的RowID,并且是一一对应的。而位图索引主要针对大量相同值的列而创建,例如:类别,操作员,部门ID等。位图索引由于只存储键值的起止Rowid和位图,占用的空间非常少。
位图索引非常适合于数据仓库应用,因为数据仓库处理的是大量即席查询,几乎没有并发的事务。位图索引提供以下优势:
- 缩短了即席查询的相应时间
- 比其他索引技术节省存储空间
- 高性能
- 高效的并行DML和加载
位图索引不适合OLTP应用,OLTP应用需要处理大量并发的修改数据的事务。位图索引更适合于基于数据仓库的决策支持系统,因为决策支持系统主要是查询数据而不是修改数据。位图索引页不适合于主要用于大于或小于比较的列,只适合于等式查询,特别是AND,OR和NOT操作;大于和小于比较更适合采用B-tree索引。
CREATE BITMAP INDEX 索引名 ON 表名 (列名);
Oracle索引的实现
果将这些记录根据它们的某一列组织成B-tree结构,一个叶节点代表一条数据,那么从n行的表中查询一条记录的平均用时为log(n)。这就是Oracle数据库索引的基本原理。

B-tree的分支节点包含到其子节点的索引。最低层节点(叶节点)包含了索引数据值和其对应的rowid,rowid用于定位对应的数据表行。
【转】Oracle索引的类型的更多相关文章
- oracle 索引扫描类型的分类与构造
1. INDEX RANGE SCAN--请记住这个INDEX RANGE SCAN扫描方式drop table t purge;create table t as select * from dba ...
- Oracle索引梳理系列(八)- 索引扫描类型及分析(高效索引必备知识)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle 索引扫描的4种类型
根据索引的类型与where限制条件的不同,有4种类型的Oracle索引扫描: 3,4可归一种 (1) 索引唯一扫描(index uniquescan) (2) 索引范围扫描(index range s ...
- Oracle 索引扫描的五种类型
之前在讨论CBO和RBO的时候提到了索引扫描的几种类型. Oracle Optimizer CBO RBO http://blog.csdn.net/tianlesoftware/archive/20 ...
- 【转】Oracle索引HINT的使用
转自:Oracle索引HINT的使用 存储在数据库中数据的分布情况开发人员或管理员比Oracle优化器更加的清楚,在优化器不能作出最有查询路径选择的情况下,使用HINT(提示)人为的固定查 ...
- Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle索引梳理系列(二)- Oracle索引种类及B树索引
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- oracle 索引失效原因及解决方法
oracle 索引失效原因及解决方法 2010年11月26日 星期五 17:10 一.以下的方法会引起索引失效 1,<>2,单独的>,<,(有时会用到,有时不会)3,like ...
- 详谈 oracle 索引 (笔记)
1.oracle索引空值问题 当在有空值得列上建立单列索引时,如果搜索条件为 is null 在解释计划中可以看到,对于此列oracle并没有使用索引查询: 但是当建立的是多列索引是,就会按照索引来进 ...
随机推荐
- JS 初级 二(接上)
传送门--http://www.cnblogs.com/Sabo-dudu/p/5786683.html (一) 六. JS 数组类型 数组是一种保存数据的有序列表,数组的每一项可以保存人意类型的数据 ...
- 如何灵活运用Linux 进程资源监控和进程限制
导读 每个 Linux 系统管理员都应该知道如何验证硬件.资源和主要进程的完整性和可用性.另外,基于每个用户设置资源限制也是其中一项必备技能. 在这篇文章中,我们会介绍一些能够确保系统硬件和软件正常工 ...
- Authorization in Cloud Applications using AD Groups
If you're a developer of a SaaS application that allows business users to create and share content – ...
- Django (2)
一.Django基本 程序编写 a. url.py /index/ -> func b. views.py def func(request): # 包含所有 ...
- Unity3D 原生Android结合UnityPlayerActivity开发遇到的问题
需求是原生Android 的Activity启动UnityPlayerActivity,按Back键后返回原来的Activity 1.在AndroidManifest.xml中的UnityPlayer ...
- selenium测试框架使用xml作为对象库
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...
- Appium for iOS setup
windows下appium设置 之前研究了一段时间的appium for native app 相应的总结如下: ...
- LeetCode 162 Find Peak Element
Problem: A peak element is an element that is greater than its neighbors. Given an input array where ...
- ios .a和.framework
创建Aggregate来合并模拟器和真机通用的framework 然后在Build Phases下New Run Script Phase创建合并脚本: # Constants SF_TARGET_N ...
- 用typedef定义函数指针的问题
在学习windows API的时候,遇到下面这段代码 以前见过的typedef的用法都是给一个数据类型取一个别名 typedef oldTypeName newTypeName 这种给数据类型 ...