Oracle之索引(Index)实例解说 - 基础
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)实例解说 - 基础的更多相关文章
- oracle唯一索引与普通索引的区别和联系以及using index用法
oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束.添加唯一索引的数据列可以为空,但是只要尊在数 ...
- ORACLE虚拟索引(Virtual Index)
ORACLE虚拟索引(Virtual Index) 虚拟索引概念 虚拟索引(Virtual Indexes)是一个定义在数据字典中的假索引(fake index),它没有相关的索引段.虚拟索引的目 ...
- Oracle索引(Index)介绍使用
1.什么是引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据:Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引:索引由根节点.分支节点和叶子 ...
- Oracle 重建索引脚本
该指数是一个有力的武器,以提高数据库的查询性能. 没有索引,喜欢同样的标签库没有书籍,找书,他们想预订比登天还难.中,尤其是在批量的DML的情形下会产生对应的碎片.以及B树高度会发生对应变化.因此能够 ...
- PLSQL_性能优化索引Index介绍(概念)
2014-06-01 BaoXinjian
- 01 Oracle分区索引
Oracle分区索引 索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局 ...
- Oracle创建索引的原则(转)
Oracle 建立索引及SQL优化 数据库索引: 索引有单列索引复合索引之说 如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问 ...
- Oracle数据库索引
Oracle数据库索引 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容. 对于数据库来说,索 ...
- Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
随机推荐
- Codeforces #105 DIV2 ABCDE
开始按照顺序刷刷以前的CF. #include <map> #include <set> #include <list> #include <cmath> ...
- IFC and BFC
BFC and IFC 1,IFC -- 针对行内元素 -- 行内格式上下文 BFC --针对块级元素 -- 块级格式上下文 2,IFC特点: 行框的高度由包含元素的高度和有没有float元素决定. ...
- ZOJ2112 Dynamic Rankings(整体二分)
今天学习了一个奇技淫巧--整体二分.关于整体二分的一些理论性的东西,可以参见XRH的<浅谈数据结构题的几个非经典解法>.然后下面是一些个人的心得体会吧,写下来希望加深一下自己的理解,或者如 ...
- javascript原型理解一种
http://www.jianshu.com/p/15ac7393bc1f 这个系列值得好好学习的.. // 声明构造函数 function Person(name, age) { this.name ...
- Python与数据库[2] -> 关系对象映射/ORM[0] -> ORM 与 sqlalchemy 模块
ORM 与 sqlalchemy 1 关于ORM / About ORM 1.1 ORM定义 / Definition of ORM ORM(Object Relational Mapping),即对 ...
- vue编程中,需要注意的
同名情况: data() 中的数据名 和 methods() 中的方法名 不能相同. 原因:因为在vue中这两个都能用this.XX拿出来,如果写一样的,将不能分辨,计算机会默认覆盖一个. ...
- 网页结构——head标签内
之前写网页都很标准的格式,最近一个项目出现了页面闪动等一系列问题[项目不是前后端分离], 所以这边有后台的功劳,有部分后台是不管你页面结构的,在他们操作的时候可能会在,你的head内meta前加内联c ...
- [BZOJ2142]礼物(扩展Lucas)
2142: 礼物 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2286 Solved: 1009[Submit][Status][Discuss] ...
- 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 ...
- spring-----mvc的反射调用
这几天在看spring mvc 源码,一直很好奇它究竟在哪进行的反射调用,通过源码,仔细阅读,最后发现了调用位置在类 InvocableHandlerMethod 的doInvoke 方法 /** * ...