Oracle管理索引(二)Oracle管理索引基本概念

1、索引的概念

索引是用于加速数据存取的数据库对象。合理地使用索引可以大大降低I/O次数。

2、索引的功能:对记录进行排序,加快表的查询速度。

3、索引的分类:

(1)单列索引和复合索引

单列索引是基于单个列所建立的索引;复合索引时基于两列或多列所建立的索引。

SQL>CREATE    INDEX    emp_idx1   on  emp( ename, job);

SQL>CREATE    INDEX    emp_idx2   on   emp (job  , ename);

可以在相同列上建立不同的索引,列顺序不一致即可

(2)惟一索引和非唯一性索引

惟一索引是索引列值不能重复的索引;非惟一索引时索引列值可以重复的索引。

无论是惟一索引还是非惟一索引,索引都允许null;

当定义主键约束或惟一约束时,Oracle会自动在相应的约束列上建立惟一索引。

(3)B-tree 索引和位图索引

(a) B-tree 索引(默认)

a、在一个大表上

b、建立在重复值比较少的列上 ,在做select查询时,返回记录的行数小于全部记录的4%

c、如果这一列经常用来做where子句和排序,也可以用来建立索引

d、一般用于OLTP

(b)bitmap 索引

a、建立在重复值非常高的列上

b、 在做DML 操作时,代价值比较高

c、一般用于OLAP 或DSS

注意: B-tree 索引不能使用or连接的语句,bitmap index可以使用

4、建立索引:默认建立B-tree index

5、建立索引表空间

建议创建专门的索引表空间去存放索引,便于管理。

SQL> conn /as sysdba

Connected.

SQL> create tablespace indexes

2  datafile '/u01/app/oracle/oradata/anny/index01.dbf' size 100m

3  autoextend on next 10m maxsize 500m

4  extent management local uniform size 128k;

Tablespace created.

SQL> select file_id,file_name,tablespace_name from dba_data_files;

FILE_ID FILE_NAME                                          TABLESPACE_NAME

---------- -------------------------------------------------- ---------------

5 /u01/app/oracle/oradata/anny/text01.dbf            TEXT

4 /u01/app/oracle/oradata/anny/user01.dbf            USERS

3 /u01/app/oracle/oradata/anny/sysaux01.dbf          SYSAUX

2 /u01/app/oracle/oradata/anny/lx02.dbf              LX02

1 /u01/app/oracle/oradata/anny/system01.dbf          SYSTEM

6 /u01/app/oracle/oradata/anny/lx01.dbf              LX01

7 /u01/app/oracle/oradata/anny/undotbs01.dbf         UNDOTBS

8 /u01/app/oracle/oradata/anny/lx03.dbf              LX03

9 /u01/app/oracle/oradata/anny/lx04.dbf              LX04

10 /u01/app/oracle/oradata/anny/index01.dbf           INDEXES

10 rows selected.

6、与索引有关的视图

DBA_INDEXES

DBA_IND_COLUMNS

V$OBJECT_USAGE

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2025-01-20 10:46:36

Oracle管理索引(二)Oracle管理索引基本概念的相关文章

Oracle 监听器日志配置与管理

--========================-- Oracle 监听器日志配置与管理--========================    Oracle 监听器是一个服务器端程序,用于监听所有来自客户端的请求,并为其提供数据库服务.因此对监听器的管理与维护相当重要. 本文主要描述对Oracle监听器日志文件的配置与管理.有关监听器的描述请参考     配置 ORACLE 客户端连接到数据库     配置非默认端口的动态服务注册    一.监听器日志特性 1.  监听器日志是一个纯文本

oracle中,索引数据定位和索引扫描有什么区别?

问题描述 oracle中,索引数据定位和索引扫描有什么区别? oracle中,索引数据定位和索引扫描有什么区别? 是不是就是简单的扫描就是要扫完,定位只要查到就可以了? 解决方案 oracle索引扫描索引扫描高手闲谈Oracle索引扫描 解决方案二: http://blog.sina.com.cn/s/blog_54eeb5d90100q9zu.html 解决方案三: 索引数据定位和索引扫描 你说的应该是索引数据定位和全表扫描吧?如果用到索引的话,没必要进行扫描,可以通过二分法快速定位

oracle中如何使用视图,索引,存储过程。 就是说怎么去用或者用在什么地方,请指教

问题描述 oracle中如何使用视图,索引,存储过程. 就是说怎么去用或者用在什么地方,请指教 oracle中如何使用视图,索引,存储过程. 就是说怎么去用或者用在什么地方,请指教 解决方案 具体你去看书,这里只是简单说说:视图,相当于虚拟的表,你可以把不同的表连接起来得到一个视图,直接像表那样返回数据,而不用写复杂的查询了.索引,顾名思义,对表中的数据预处理,加快查询的速度.存储过程,一组预先写好的sql代码的集合,可以直接调用.存储过程因为是事先写好,并且编译的,所以更快,而且它像函数那样,

索引在Oracle中的应用深入分析_oracle

索引是提高数据查询最有效的方法,也是最难全面掌握的技术,因为正确的索引可能使效率提高10000倍,而无效的索引可能是浪费了数据库空间,甚至大大降低查询性能. 一.索引的管理成本1. 存储索引的磁盘空间2. 执行数据修改操作(INSERT.UPDATE.DELETE)产生的索引维护3. 在数据处理时所需额外的回退空间. 二.实际数据修改测试:一个表有字段A.B.C,同时进行插入10000行记录测试在没有建索引时平均完成时间是2.9秒在对A字段建索引后平均完成时间是6.7秒在对A字段和B字段建索引后

Oracle如何预估将要创建的索引和表的大小

Oracle如何预估将要创建的索引和表的大小 1. 对于表和索引空间的预估,可以使用DBMS_SPACE包的CREATE_TABLE_COST和CREATE_INDEX_COST存储过程,虽然没有看这两个存储过程的实现,但猜测平均行长算法,会根据预计行数,做一些计算,字段定义算法,则会根据每个字段的长度,和预计行数,做一些计算,其实和我们手工根据这些算法,计算的方式类似,只是封装起来,便于调用. 2. CREATE_TABLE_COST根据列字段定义预估,是比较准确的,根据平均行长,并不很准确.

【索引】Oracle之不可见索引和虚拟索引的比对

[索引]Oracle之不可见索引和虚拟索引的比对    Oracle之不可见索引 :http://blog.itpub.net/26736162/viewspace-2124044/ Oracle之虚拟索引 :  http://blog.itpub.net/26736162/viewspace-2123687/   之前给大家分享过不可见索引和虚拟索引,今天给大家分享的是Oracle之不可见索引和虚拟索引的比对.   比较项目 不可见索引(Invisible Indexes) 虚拟索引(Virt

索引在ORACLE数据库中的应用分析

oracle|数据|数据库|索引 索引在数据库中的应用分析     索引是提高数据查询最有效的方法,也是最难全面掌握的技术,因为正确的索引可能使效率提高10000倍,而无效的索引可能是浪费了数据库空间,甚至大大降低查询性能.   索引的管理成本 1.  存储索引的磁盘空间 2.  执行数据修改操作(INSERT.UPDATE.DELETE)产生的索引维护 3.  在数据处理时回需额外的回退空间.   实际数据修改测试: 一个表有字段A.B.C,同时进行插入10000行记录测试 在没有建索引时平均

oracle的自动共享内存管理概述

从Oracle 10g开始,Oracle提供了自动SGA的管理(简称ASMM,即Automatic Shared Memory Management)新特性.所谓ASMM,就是指我们不再需要手工设置 shared pool.buffer pool等若干内存池的大小,而是为SGA设置一个总的大小尺寸即可.Oracle 10g数据库会根据系统负载的变化,自动调整各个组件的大 小,从而使得内存始终能够流向最需要它的地方. 比如,假设某个系统,白天属于OLTP应用,因此会需要较多的buffer cach

Oracle RAC 环境下如何管理参数文件(spfile)

RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数.对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置,但一般不建议这么用.本文描述RAC 环境下参数文件(spfile)的相关管理工作. 1.参数文件的位置 SQL> show parameter instance_name NAME                                 TYPE        VALUE ---------

oracle的区管理和段空间管理

㈠ 单实例Oracle locking机制 locking机制的三大组成部分: ① resource structure Oracle对于每个需要"并发访问"的资源,都在SGA中用一个数据结构来描述它 这个结构叫resource structure 这个数据结构有三个成员:owner.waiter和converter 这是3个指针 指向由lock structure组成的链表的指针 其中,converter和waiter有些区别: 如果某个操作先后需要两种不同模式的锁,比如,先S,后X