Oracle主要有9种表类型:
1>. 堆组织表(heap organized table):
"普通"的标准数据表. 数据以堆的方式管理, INSERT, UPDATE只要找到自由空间存放数据就可, DELETE数据后的空间可以重用.
全表扫描时, 会按命中的顺序来获取数据, 而不是按插入的顺序. 数据表是无序的数据集合. 同一个查询可能以不同的顺序取出数据.
2>. 索引组织表(index organized table):
按索引结构存放, 强制要求行本身有某种物理顺序. 数据按主键有序存放.
与heap organized table比较: 堆表有主键索引的空间开销, IOT表就不存在了, 本身就是有序存放的.
如果你只通过主键来访问该表, 侧使用IOT表比较好.
CREATE TABLE IOT_tablename
(
-- ....
)
ORGANIZATION INDEX;
3>. (index clustered table):
将一个或多个表组成的组, 物理的存放在相同的数据块上, 有相同键值的所有行会相邻地存放. 按B*树建立索引.
Culster: 如果一组表有有一些共同的列, 就将这样一组表存放在相同的数据块上. Cluster也可以在一张表的某个列上. Cluster不是有序的存放数据, 而是按某个列聚簇方式存放数据, 数据存放在堆中.
4>. (hash clustered table):
与index cluster table相似, 不使用B*树建立索引, 采用hash函数的型式.
5>. (sorted hash clustered table):
add in Oracle 10g. 接合了IOT(index organized table)和hash clustered table的特性.
6>. (nested table):
是Oracle对象关系的扩展, 类似父/子关系表, 但没有子表那样独立.
7>. (temporary table):
存放事务期或会话期的"草稿"数据. 在临时表空间中分配.
8>. (object table):
基于对象类型创建.
9>. (external table):
表不存放在数据库中, 存放在操作系统的文件中.
--------------------------------------------
段(segment)类型
1>. cluster:
能存放表, 通常存放多个表上相关的数据, 该段可以把相关的信息物理的聚在一起. cluster有两种类型:B*树和hash.
2>. table:
最常见的段类型, 通常与索引段关联使用.
3>. table partition or subpartition:
用于表的分区.
4>. index:
保存索引结构信息.
5>. index partition:
用于索引的分区
6>. lob partition, lob subpartition, lob index, lob segment :
对包含LOB对象的分区
7>. nested table:
为nest表保存数据.
8>. rollback and Type2 undo:
rollback segment 由DBA手动建立, Type2 undo由Oracle自动建立与管理.
eg:
SQL>select segment_name, segment_type from user_segments;
no rows selected
SQL>create table t( x int primary key, y clob, z blob);
Table created.
SQL>select segment_name, segment_type from user_segments;
SETGMENT_NAME SEGMENT_TYPE
--------------------- -------------------
T TABLE
SYS_IL0000030233C00002$$ LOBINDEX
SYS_IL0000030233C00003$$ LOBINDEX
SYS_C002241 INDEX
SYS_LOB0000030233C00002$$ LOBSEGMENT
SYS_LOB0000030233C00003$$ LOBSEGMENT
6 rows selected.
-----------------------------------------------------------
Segment Space Management
1>. Manual Segment Space Management:
由你设置FREELISTS, FREELISTGROUPS, PCTUSED和其它参数来控制如何分配,使用Segment.
2>. Automatic Segment Space Management:
设置PCTFREE, BUFFER_POOL, INITRANS, MAXTRANS
阅读(1875) | 评论(0) | 转发(0) |