Oracle之索引(Index)实例解说 - 基础

索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象。主要目的是加快数据的读取速度和数据的完整性检查。索引的建立是一项技术性要求很高的工作。

一般在数据库设计阶段就要考虑到怎样设计和创建索引。

1. 创建索引

创建索引的语法:

CREATE [UNIQUE] INDEX [schema.] index
ON [schema.] table (column [ASC | DESC], column [ASC | DESC]...)
[CLUSTER schema.cluster]
[INITRANS n]
[MAXTRANS n]
[PCTFREE n]
[STORAGE storage]
[TABLESPACE tablespace]
[NO SORT]

keyword说明:

  • UNIQUE: 该參数用来指明所创建的索引为唯一索引。

  • CLUSTER: 该參数为可选參数,用来指定一个聚簇(Hash cluster 不能创建索引)。
  • INITRANS, MAXTRANS: 为可选參数,指定初始和最大的事务入口数。
  • TABLESPACE: 索引的存储表空间。
  • STORAGE: 存储參数。

  • PCTFREE: 索引数据块空暇的百分比。
  • NO SORT: 不排序(存储时就依照升序进行排序,所以这里指出不再排序)。

演示样例:创建一张产品表(tb_product),为该表的product_id列创建索引,以便在使用到该列时提高查询效率。

create table tb_product
(
product_id number
, product_name varchar2(100)
, product_type varchar2(20)
, product_unit varchar2(50)
, product_unit_price number(10,4)
);

以下代码用来在product_id列上创建唯一索引:

create unique index product_id_u1 on tb_product(product_id);

2. 改动索引

索引的改动主要由数据库管理员完毕,改动索引主要涉及到改动索引的存储參数、重建索引、对没用的索引空间进行合并等。

改动索引的语法:

ALTER [UNIQUE] INDEX [user.] index
INITRANS n
MAXTRANS n
REBUILD
[STORAGE <storage>]

说明:

  • INITRANS n: 表示一个块内同一时候訪问的初始事务的入口数,n为十进制整数。

  • MAXTRANS  n: 表示一个块内同一时候訪问的最大事务入口数。n为十进制整数。
  • REBUILD: 表示依据原来的索引结构又一次建立索引。也就是又一次对表进行全表扫描以后创建索引数据。
  • STORAGE <storage>: 表示存储数据。

演示样例:

使用ALTER INDEX语句改动索引參数:

ALTER INDEX product_id_u1 REBUILD STORAGE  ( INITIAL 1M NEXT 512K );

使用ALTER INDEX语句改动索引为逆向索引:

ALTER INDEX product_id_u1 REBUILD REVERSE;

使用ALTER INDEX语句合并索引空间:

ALTER INDEX product_id_u1 COALESCE;

3. 删除索引

能够使用DROP语句删除索引。

DROP INDEX schema.index;

注:假设表结构被删除。则与该表相关联的索引也同一时候被删除。

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

假设您们在尝试的过程中遇到什么问题或者我的代码有错误的地方。请给予指正,很感谢!

联系方式:david.louis.tian@outlook.com

版权@:转载请标明出处, 否则追究法律责任!

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

Oracle之索引(Index)实例解说 - 基础的更多相关文章

  1. oracle唯一索引与普通索引的区别和联系以及using index用法

    oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束.添加唯一索引的数据列可以为空,但是只要尊在数 ...

  2. ORACLE虚拟索引(Virtual Index)

    ORACLE虚拟索引(Virtual Index)   虚拟索引概念 虚拟索引(Virtual Indexes)是一个定义在数据字典中的假索引(fake index),它没有相关的索引段.虚拟索引的目 ...

  3. Oracle索引(Index)介绍使用

    1.什么是引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据:Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引:索引由根节点.分支节点和叶子 ...

  4. Oracle 重建索引脚本

    该指数是一个有力的武器,以提高数据库的查询性能. 没有索引,喜欢同样的标签库没有书籍,找书,他们想预订比登天还难.中,尤其是在批量的DML的情形下会产生对应的碎片.以及B树高度会发生对应变化.因此能够 ...

  5. PLSQL_性能优化索引Index介绍(概念)

    2014-06-01 BaoXinjian

  6. 01 Oracle分区索引

    Oracle分区索引   索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局 ...

  7. Oracle创建索引的原则(转)

    Oracle 建立索引及SQL优化 数据库索引: 索引有单列索引复合索引之说 如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问 ...

  8. Oracle数据库索引

    Oracle数据库索引 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 对于数据库来说,索 ...

  9. Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

随机推荐

  1. Codeforces #105 DIV2 ABCDE

    开始按照顺序刷刷以前的CF. #include <map> #include <set> #include <list> #include <cmath> ...

  2. IFC and BFC

    BFC and IFC 1,IFC -- 针对行内元素 -- 行内格式上下文 BFC --针对块级元素 -- 块级格式上下文 2,IFC特点: 行框的高度由包含元素的高度和有没有float元素决定. ...

  3. ZOJ2112 Dynamic Rankings(整体二分)

    今天学习了一个奇技淫巧--整体二分.关于整体二分的一些理论性的东西,可以参见XRH的<浅谈数据结构题的几个非经典解法>.然后下面是一些个人的心得体会吧,写下来希望加深一下自己的理解,或者如 ...

  4. javascript原型理解一种

    http://www.jianshu.com/p/15ac7393bc1f 这个系列值得好好学习的.. // 声明构造函数 function Person(name, age) { this.name ...

  5. Python与数据库[2] -> 关系对象映射/ORM[0] -> ORM 与 sqlalchemy 模块

    ORM 与 sqlalchemy 1 关于ORM / About ORM 1.1 ORM定义 / Definition of ORM ORM(Object Relational Mapping),即对 ...

  6. vue编程中,需要注意的

    同名情况: data() 中的数据名   和  methods()  中的方法名  不能相同. 原因:因为在vue中这两个都能用this.XX拿出来,如果写一样的,将不能分辨,计算机会默认覆盖一个. ...

  7. 网页结构——head标签内

    之前写网页都很标准的格式,最近一个项目出现了页面闪动等一系列问题[项目不是前后端分离], 所以这边有后台的功劳,有部分后台是不管你页面结构的,在他们操作的时候可能会在,你的head内meta前加内联c ...

  8. [BZOJ2142]礼物(扩展Lucas)

    2142: 礼物 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 2286  Solved: 1009[Submit][Status][Discuss] ...

  9. Codeforces 908 D New Year and Arbitrary Arrangement

    Discription You are given three integers k, pa and pb. You will construct a sequence with the follow ...

  10. spring-----mvc的反射调用

    这几天在看spring mvc 源码,一直很好奇它究竟在哪进行的反射调用,通过源码,仔细阅读,最后发现了调用位置在类 InvocableHandlerMethod 的doInvoke 方法 /** * ...