学无止境
分类: Oracle
2013-12-04 15:21:24
最常见的调优的方法,就是建立索引。
schema优化,通过建立各种合适的对象,适用于不同的数据访问。
索引组织表(IOT)不仅可以存储数据,还可以存储为表建立的索引。索引组织表的数据是根据主键排序后的顺序进行排列的,这样就提高了访问的速度。但是这是由牺牲插入和更新性能为代价的(每次写入和更新后都要重新进行重新排序)。
注意两点:
创建IOT时,必须要设定主键,否则报错。
索引组织表实际上将所有数据都放入了索引中。
因为所有数据都放入索引,所以当表的数据量很大时,会降低索引组织表的查询性能。此时设置溢出段将主键和溢出数据分开来存储以提高效率。溢出段的设置有两种格式:
PCTTHRESHOLD n :制定一个数据块的百分比,当行数据占用大小超出时,该行的其他列数据放入溢出段
INCLUDING column_name :指定列之前的列都放入索引块,之后的列都放到溢出
例如:
create table iot1(
id number,
name varchar2(20),
code number,
loc varchar2(17),
constraint pk_iot1 primary key (id)
)
organization index
tablespace indx
pctthreshold 20
including name
overflow tablespace users;
SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
----------------------------------- ------------------ ------------------------------
SYS_IOT_OVER_47589 TABLE USERS
PK_IOT1 INDEX INDX