oracle为表增加索引,【增加Oracle中表的索引】
1)概念: Oracle中的索引是基于表或集群的数据对象. 它具有类似于表的独立段存储结构,并且需要在表空间中分配存储空间.
2)功能: 可以提高查找表中数据的速度.
1)B树索引(测试站点): 它是Oracle中使用最广泛的索引和默认索引类型. B树是指平衡树(Balanced Tree),它使用平衡算法来管理索引.
适用于B树索引:
2)位图索引: 当要索引的数据具有大量重复值时,如果在其上建立了B树索引,则大量相同索引列值将存储在叶块,而是降低查询速度. 在这种情况下,应使用位图索引.
每个索引列值存储一个位图,该位图由二进制位组成.
3)反向键索引: 它是一个B树索引,物理上颠倒了索引的列值,但列的顺序保持不变. 反向键索引通常建立在值不断增加的列上,以便数据均匀分布在整个索引中. 目的是解决叶子块争用的问题.
l对于创建反向键索引的列,Oracle将在执行查询操作时自动反向查询条件以匹配反向键索引. 如果在WHERE子句中使用范围查询条件(例如BETWEEN,等),因为索引值是反向的,因此查询不会以原始顺序执行. 查询期间必须执行全表扫描,因此反向键索引“列”不适用于范围查询.
4)基于函数的索引: 基于函数的索引将首先计算列的函数或表达式,然后将计算结果存储在索引中. 创建这种类型的索引时,需要注意以下几点:
5)唯一索引和非唯一索引(测试站点)
如果索引值可以相同,则索引可以分为唯一索引和非唯一索引. 类似于唯一约束.
唯一索引是指索引值不重复的索引
6)单列索引和复合索引(测试站点)
单列索引是所创建表的单列上的索引. 如果将表的多个列作为一个整体并在其上创建了索引,则该索引称为复合索引.
语法:
create index index_name on table_name(字段名);
1)将索引更改为反向键索引或普通索引
语法:
alter index index_name rebuild noreverse;//普通索引
alter index index_name rebuild reverse;//反向键索引
2)重命名索引
语法:
alter index index_name rename to new_name;
3)修改要压缩或未压缩的索引
语法:
alter index index_name rebuild nocompress;//非压缩
alter index index_name rebuild compress;//压缩
4)修改索引以写入重做日志文件或不写入重做日志文件
语法:
alter index index_name rebuild nologging;//不写入重做日志文件
alter index index_name rebuild logging;//写入重做日志文件
5)修改索引表空间
语法:
alter index index_name tablespace tablespace_name;
6)合并索引
语法:
alter index index_name coalesce;
语法:
drop index index_name;
1)您可以通过以下数据字典视图了解有关用户的信息:
dba_indexes,all_indexes和user_indexes; dba_ind_columns,all_ind_columns和user_ind_columns; dba_ind_expressions,all_ind_expressions和user_ind_expressions.
1)除了加快查询速度和提高系统性能外oracle中表的索引,索引的另一个重要作用是为主键约束和唯一约束提供支持. (测试中心)
2)创建主键约束和唯一约束时,Oracle将在此列上自动创建唯一索引.
3)不仅主键约束和唯一约束都需要使用唯一索引,而且外键约束也要使用
.
1)索引具有以下缺点:
2)在创建和使用索引时,请先查看其是否满足以下要求:
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-195694-1.html
oracle为表增加索引,【增加Oracle中表的索引】相关推荐
- oracle修改表中字段名,oracle如何修改表字段名
oracle修改表字段名的方法是: 首先bai方法是使用RENAME关键字: 修改字段名:alter table 表名 rename column 现列zhi名 to 新列名;修改表名:alter t ...
- oracle创建表需要注意什么,Oracle创建表和插入的相关注意事项
一.Oracle 中的数据类型是number(),大的数据用clob 类型.二.建立主键自增ORACLE SEQUENCE的简单介绍在Oracle中sequence就是 一.Oracle 中的数据类型 ...
- oracle查看表空间物理路径,oracle查看表空间物理文件的名称,路径及大小
select tablespace_name, file_id,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files ...
- oracle误删表空间 无法关闭,oracle 误删表空间文件启动不了数据库的解决办法
近日在搞rman备份恢复的实验,因为在虚拟机建立一个rman表空间,但是发现磁盘空间不够大,所以删除了,导致数据库启动不了了,解决办法如下: 1.误删rman表空间 SQL> ! rm -f / ...
- oracle多表关联查询报表,oracle多表关联查询和子查询
oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...
- shell脚本执行oracle删除表,shell脚本操作oracle删除表空间、创建表空间、删除用户...
oracle下表空间的导出,用户的删除,表空间删除,用户新建,表空间新建,数据导入的shell 使用非oracle用户执行该脚本 参数说名 $1:base表空间的用户名 $2:同步表空间的用户名 使用 ...
- oracle导入表 忽略报错,oracle数据泵导入分区表统计信息报错(一)
今天在进行数据泵导入操作时,发现一个bug. 数据库版本Oracle 10203 for Solaris RAC,执行导入在处理表的统计信息时报错,错误信息为:ORA-39083和ORA-917. 经 ...
- oracle给表赋清空权限,oracle建表赋权限
oracle建表赋权限 --创建表空间 create tablespace ya logging datafile 'D:\Oracle\product\10.2.0\oradata\oracle\y ...
- oracle删除表数据带条件,Oracle删除表数据
在本教程中将学习如何使用Oracle DELETE语句从表中删除一行或多行数据记录. 要从表中删除一行或多行,请按如下所示使用Oracle DELETE语句: DELETE FROM table_na ...
- oracle建表唯一约束语句,Oracle建表语句是什么
Oracle建表语句是什么 oracle数据库的建表语句,具体语法如下:CREATE TABLE tablename( column_name datatype [null,not null], co ...
最新文章
- quick time不可用是什么意思_自动挡上每个字母都代表什么意思?可以用一句话总结...
- 浅析移动端网站是如何做好前期策划工作的?
- Notification详解
- LiveVideoStackCon 2018公布优秀出品人与讲师
- javascript初学者_针对JavaScript初学者的调试技巧和窍门
- 笔记本AutoCAD启动时闪退怎么办_戴尔笔记本电脑开不了机如何解决【解决方法】...
- opensource项目_最佳Opensource.com:艺术与设计
- CentOS7安装VirtualBox后系统起不来了:版本和vbox兼容很重要吧,不然VirtualBox起不来。
- VB得到指定文件夹下的文件列表
- 2021-09-02AUC
- 波士顿房价数据分析(R语言)
- python画布上显示多张图片_python实现在一个画布上画多个子图
- css 动画 (transition animation)
- miui12和鸿蒙系统,鸿蒙2.0和miui12对比_鸿蒙2.0和miui12使用对比
- 华硕路由器官方固件开机自动运行脚本方法
- OSPF 之 LSA限制
- logback官网地址
- CRF as RNN
- php底部漂浮广告位代码,DIV+CSS固定底部的漂浮广告
- 学习笔记——数据库(过滤搜索2:正则表达式)