Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1148997
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: 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

阅读(764) | 评论(0) | 转发(0) |
0

上一篇:Manage Services

下一篇:Use the SQL Tuning Advisor

给主人留下些什么吧!~~