oracle 索引组织表 & 物化视图(实体化视图)
oracle 索引组织表 & 物化视图(实体化视图)
索引组织表
create table employee
(empid number(10) not null primary key,name varchar2(20),mobile varchar2(20)
)
organization index
pctthreshold 20
overflow tablespace abc
由于叶块中存储太多信息导致性能问题,因此引入了行溢出的概念.通过设置行溢出值,可以将非主键列移到另一个表空间的另一个段中.下列关键字设置确定行溢出的处理方法:
* pctthreshold 确定iot叶块中为iot行保留的空间百分比,有效值为0-50
* including 确定iot块中保存到的切换点,只要其不超过pctthreshold.指定列之后的任何列存放在overflow表空间.
* overflow 这个字句指定iot行溢出部分的表空间和存储参数.过多的使用overflow表可能抵消性能.
9i中,可以为iot表生成位图索引.
物化视图(实体化视图):
create materialized view
sales
build immediate refresh fast
enable query rewrite
as select * .....
刷新方式:
* complete 截断表并执行视图查询,读取基础表行建立实体化视图.
* fast 这个方法只处理上次刷新以来基础表中的改变,用基础表实体化视图日志或直接夹在日志进行刷新.
* force 表示已是使用快速方法,如果行不通则使用完全刷新
* never 不刷新.
自动刷新方式:
通过设置on commit 子句配置,使基础表中实现的强制实体化视图快速刷新.刷新是异步的,因此不会减慢基础表中的事物.也可用start with 与 next子句建立自动刷新计划.
手工刷新 使用on demand子句,然后用dbms_mview包中的过程更新视图.
查询重写
需设置query_rewrite_enabled参数.