oracle索引
索引能减少必要的磁盘i/o时间,缩短查询数据的时间,但创建索引之后一般会增加数据更新操作的执行时间
oracle中的索引模式
(1)b-树索引,默认的索引
(2)b-树簇索引,为簇定义的索引
(3)全局和本地索引,应用于分区表的索引
(4)位图索引,适用于具有少量值的列的索引
管理索引的准则
(1)限制每个表的索引的数量
(2)为每个索引制定表空间
(3)估计索引大小 并设置存储参数
在如下条件下需要创建索引
(1)一列或多列被经常一起用于where条件和连接条件中
(2)表很大,有很多记录
(3)列有较大的取值范围
创建索引
(1)创建唯一索引
唯一索引保证在索引列上不会有两行相同的值
(2)创建位图索引
位图索引并不重复存放索引列的值,因此位图索引需要的存储空间比b-树索引小的多,所以oracle在使用位图索引时将整个位图索引段装入内存中,这个过程相当于将一个在磁盘上的搜索变成了一个在内存中的查询过程,从而提高系统效率
位图索引适用于仅有几个固定值的列,如性别
(3)创建基于函数的索引
基于函数的索引主要使用在经常执行以某种函数形式为条件来查询数据的应用
(4)创建簇索引
oracle视图
基本视图
视图本身不存放任何数据,可以隐藏络及数据,为系统安全提供支持
视图的好处
(1)限制用户对数据的访问
(2)使得复杂查询对编程人员变得容易使用
(3)为相同的数据提供不同的视角
其中,视图的使用是有限制的,如果视图建立时包含如下结构之一,则视图不能做insert/update/delete操作
(1)连接运算
(2)集合运算
(3)分组函数
(4)distinct
(5)group by/connect by/start with
内嵌视图
内嵌视图是一个写在sql语句内的带有一个别名的子查询,所谓的内嵌视图就是一个子查询数据结果的存放的视图