Oracle之索引(Index)实例讲解 - 基础
来源:互联网 发布:心事无人知 原唱 编辑:程序博客网 时间:2024/05/13 14:51
Oracle之索引(Index)实例讲解 - 基础
索引(Index)是关系数据库中用于存放表中每一条记录位置的一种对象,主要目的是加快数据的读取速度和数据的完整性检查。索引的建立是一项技术性要求非常高的工作。
一般在数据库设计阶段就要考虑到如何设计和创建索引。
1. 创建索引
创建索引的语法:
CREATE [UNIQUE] INDEX [schema.] indexON [schema.] table (column [ASC | DESC], column [ASC | DESC]...)[CLUSTER schema.cluster][INITRANS n][MAXTRANS n][PCTFREE n][STORAGE storage][TABLESPACE tablespace][NO SORT]
关键字说明:
- 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.] indexINITRANS nMAXTRANS nREBUILD [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
版权@:转载请标明出处, 否则追究法律责任!----------------------------------------------------------------------------------------------------------
0 0
- Oracle之索引(Index)实例讲解 - 基础
- 《Oracle SQL优化基础》之位图索引(BitMap index)
- Oracle笔记 之 索引(index)
- Oracle笔记 之 索引(index)
- Oracle的索引实例及语法讲解
- 【Oracle学习】之 索引(index)
- Oracle索引index
- Oracle索引index
- oracle 索引(index)
- oracle index 索引总结
- oracle 索引(index)
- Oracle - index (索引)
- oracle index(索引)
- Oracle索引(index)
- Oracle-index索引解读
- Oracle 索引 index
- oracle索引index
- Oracle索引之index range scan/index full scan/index fast full scan
- hdu 4474 Yet Another Multiple Problem(BFS)
- Android突破笔记五:ContentProvider和Uri详解
- UVA - 1326 (中途相遇法 + 统计奇偶)
- 在Visual Studio 2012中使用XNA 4.0
- 【原创】memset和memcpy用法总结
- Oracle之索引(Index)实例讲解 - 基础
- 常量、变量与运算符
- hdu3415 单调队列求区间最大和
- java中filter的用法
- 《Pro Git 2》学习笔记_Chapter 1
- C# 运行时序列化
- 各种排序算法
- 插件
- redis 学习--基础1 build and run