3970128
9559344(没有/*+append*/提示的普通加载)
我们观察到,对组织索引表直径路径加载并没有减少redo的产生量。
我们对比插入组织索引表与堆栈表所产生的拴与锁的对比,还能看到插入组织索引表需要更多的资源。实际上对表进行DML操作都会引起更大的资源消耗。
这也说明了 组织索引表的一些使用场所。
Index-Organized Tableswith Row Overflow Area
B-tree 索引项通常是比较小,因为每一个索引项的组成仅是键值和rowid。 但是,在索引组织表,B-tree 索引项可能会变得比较大,因为其中包含了整个数
应用程序操控索引组织表的方式与操控普通表相同——使用SQL 命令。但
是,数据库系统的通过操控对应的B-tree 索引来执行所有的操作。
下表显示了索引组织表与普通表的不同。
普通表
索引组织表
rowid 唯一地识别每一行,主键是可选的设定项目。
主键唯一地识别每一行,主键必须被设定。
ROWID 隐含字段中的物理 rowid 可以用于创建第二个索引
ROWID 隐含字段中的逻辑rowid 可以用于创建第二个索引
基于rowid 进行数据访问
基于逻辑rowid 进行数据访问
连续扫描返回所有的行
全索引扫描返回所有的行
可以与其他表一起保存在簇中
不能够保存在簇中
可以包含数据类型位LONG 和LOB 的字段
可以包含数据类型位LOB 的字段,但是不
能包含数据类型位LONG 的字段
组合索引表还有3个重要的参数
select dbms_metadata.get_ddl('TABLE','ORG_INDEX_TABLE') from dual
CREATE TABLE"TIWEN"."ORG_INDEX_TABLE"
( "OBJECT_ID"NUMBER(38,0),
"ONAME" VARCHAR2(30),
"OWNER" VARCHAR2(30),
"STATUS" VARCHAR2(30),
PRIMARY KEY ("OBJECT_ID") ENABLE
) ORGANIZATION INDEX NOCOMPRESSPCTFREE 10 INITRANS 2 MAXTRANS 255 LOGGING
STORAGE(INITIAL 65536 NEXT 1048576MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELISTGROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
PCTTHRESHOLD 50
主键总是要存在索引叶结点块上
在一个8k的数据块上,PCTTHRESHOLD 50表示,如果一行数据如果字节数>4k 则这个行的一部分数据存在另一个非索引块上(溢出块),至于哪一些数据存储在块上,还要察看其它的一些参数。
Including 行中的第一列到including指定的列存放在索引块上,剩余部分存放在溢出块。
CREATE TABLE "TIWEN"."ORG_INDEX_TABLE"
( OBJECT_IDNUMBER(38,0),
ONAME VARCHAR2(30),
OWNER VARCHAR2(30),
STATUS VARCHAR2(30),
PRIMARY KEY ("OBJECT_ID") ENABLE
)
Organization index
Include ONAME overflow
这张表的object_id oname存放在索引块上,而剩余部分存放在溢出块上。
产看下面的3个语句的执行计划
select * from org_index_table_1
where object_id=312
select * from org_index_table_1
where oname='I_DIR$SERVICE_UI'
select owner from org_index_table_1
where owner='SYS'
我们并不能从执行计划产看,什么数据在索引块上,什么数据在溢出块上。
但是我们可以看到索引快以及溢出块所在的段
CREATE TABLE TIWEN.ORG_INDEX_TABLE_2
( OBJECT_IDNUMBER(38,0),
ONAME VARCHAR2(30),
OWNER VARCHAR2(30),
STATUS VARCHAR2(30),
PRIMARY KEY (OBJECT_ID) ENABLE
) ORGANIZATION INDEX NOCOMPRESSPCTFREE 10 INITRANS2 MAXTRANS 255 LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS1 BUFFER_POOLDEFAULT)
TABLESPACE USERS
PCTTHRESHOLD 1 INCLUDINGONAME OVERFLOW
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS1 BUFFER_POOLDEFAULT)
TABLESPACE example
select replace(dbms_metadata.get_ddl('TABLE','ORG_INDEX_TABLE_1'),'"',null) fromdual
insert intoorg_index_table_2
select * from s_table
analyze tableorg_index_table_2 compute statistics
for table
for all indexes
for all indexed columns
select * fromorg_index_table_1
where object_id=312
select * fromorg_index_table_1
where oname='I_DIR$SERVICE_UI'
select owner from org_index_table_2
where owner='SYS'
select * from user_segments where segment_name='SYS_IOT_TOP_71389'
select * from dba_segments where owner='TIWEN' andtablespace_name='EXAMPLE'
select * from dba_segments where segment_