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所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
随机推荐
- What does this bit-manipulating function do?
http://stackoverflow.com/questions/8637142/what-does-this-bit-manipulating-function-do unsigned long ...
- mysql 共享空间转为独立表空间
由于以前的mysql配置为共享表空间,服务器空间不足,清理日志表里的数据后,数据库并没缩小,照成空间浪费,现在修改为独立表空间 #独立表空间innodb_file_per_table=1 #停止事物日 ...
- python--traceback模块
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat # 异常处理在python中已经屡见不鲜了,我们不仅可以处理异常,也可以将 ...
- linux文件系统之loop环设备--新建一个文件系统并挂载
1. /dev目录下有所有已经连接到操作系统上的设备,他们能在/dev里出现就表示他们在硬件层面和系统核心层面被识别了.对于stdin.stdout.zero等设备是可以直接用> <这些 ...
- DRF的版本和认证
DRF的版本 版本控制是做什么用的, 我们为什么要用 首先我们要知道我们的版本是干嘛用的呢~~大家都知道我们开发项目是有多个版本的~~ 当我们项目越来越更新~版本就越来越多~~我们不可能新的版本出了~ ...
- (4)C#变量,常量,数据类型,转义字符,数据类型转换
一.变量 程序运行期间能够被改变的量称为变量. 变量名称要用小写字母开头,避免用下划线开头. 如果包含多个单词,从第二个单词开始首字母都要大写. 定义并初始化 double pi = 3.14 二.常 ...
- 快速幂取模(当数很大时,相乘long long也会超出的解决办法)
当几个数连续乘最后取模时,可以将每个数字先取模,最后再取模,即%对于*具有结合律.但是如果当用来取模的数本身就很大,采取上述方法就不行了.这个时候可以借鉴快速幂取模的方法,来达到大数相乘取模的效果. ...
- springMVC笔记:@ResponseBody
使用@ResponseBody的方式,将Map形返回值转为json,用作POST请求的返回值.为了解决406 Not Acceptable错误,需要检查以下几项: 1. 依赖包中包含jackson-m ...
- 01Trie树【p2420】 让我们异或吧
Description 异或是一种神奇的运算,大部分人把它总结成不进位加法. 在生活中-xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么: (A是否是男生 )xor( B是否是男生) ...
- POJ 3264 Balanced Lineup(zkw线段树)
[题目链接] http://poj.org/problem?id=3264 [题目大意] 求区间最大值和最小值的差值 [题解] 线段树维护区间极值即可 [代码] #include <cstdio ...