Oracle数据库性能优化:索引组织表、分区表、行迁移与索引管理
1. 索引组织表(IOT)
1.1 IOT的优势
索引组织表(IOT)通过将索引和数据结合,节省了空间,不存在单独的数据表空间和索引表空间。同时,访问速度更快,因为获取数据所需的读取次数更少。在普通表上通过索引访问数据时,需要先在索引段中读取索引以找到数据段中目标行的ROWID,然后再进行第二次读取以获取实际数据。而IOT则无需第二次对数据段的单独读取,一旦找到数据的索引,也就找到了数据。
1.2 IOT的局限性
尽管IOT有诸多优点,但并非总是适用。其基于索引的结构在处理多次插入、更新和删除操作时表现不佳。此外,过长的行将被移动到一个名为溢出区域的单独数据段中。在Oracle 8i之前,IOT上只能有一个由第一列组成的索引,并且IOT没有ROWID,因此如果代码引用了ROWID,则不能使用IOT。
1.3 IOT的适用场景和创建方法
IOT适用于静态查找表,例如使用邮政缩写的STATE表。创建IOT的示例代码如下:
SQL> create table state
2 (code char(2), name varchar2(30),
3 constraint state_pk primary key (code))
4 organization index
5 tablespace employees
6 pctthreshold 20
7 overflow tablespace users;
Table created.
超级会员免费看
订阅专栏 解锁全文
435

被折叠的 条评论
为什么被折叠?



