oracle数据库表_笔记1:术语段
术语
1段
Oracle中的段(segment)是占用磁盘上存储空间的一个对象。有多种段类型,下面列出的是最常见的段类型。
.聚簇(cluster):这种段类型能存储表。有两种类型的聚簇:B*树聚簇和散列聚簇。聚簇通常用于存储多个表上的相关数据,将其预联结存储到同一个数据库块上;还可以用于存储一个表的相关信息。“聚簇”这个词是指这个段能把相关的信息物理地聚在一起。
.表(table):表段保存一个数据库表的数据,这可能是最常用的段类型,通常与索引段联合使用。
.表分区(table partition)或子分区(subpartition):这种段类型用于分区,与表段很相似。分区表由一个或多个表分区段(table partition segment)组成,组合分区表则由一个或多个表子分区段(table subpartition segment)组成。
.索引(index):这种段类型可以保存索引结构。
.索引分区(index partition):类似于表分区,这种段类型包含一个索引的某个片。分区索引由一个或多个索引分区段(index partiton segment)组成。
.lob分区(lob partition)、lob子分区(lob subpartition)、lob索引(lobindex)和lob段(lobsegment):lobindex和lobsegment段保存大对象(large object或LOB)的结构。对包含LOB的表分区时,lobsegment也会分区,lob分区段(lob partiton segment)正是用于此。有意思的是,并没有一种lobindex分区段(lobindex partition segment)类型
.嵌套表(nested table):这是为嵌套表指定的段类型,它是主/明细关系中一种特殊类型的子表
.回滚段(rollback)和Type2undo段:undo数据就存储在这里。回滚段是DBA手动创建的段。Type2 undo段由Oracle自动创建和管理。
举例来说,一个表可以是一个段。索引有可能是一个段。可以把一个索引划分到不同的段中。索引对象本身只是一个定义,而不是一个物理段,索引可能由多个索引分区组成,而每个索引分区(index partition)是一个段。表可能是一个段,也可能不是。由于同样的原因,由于表分区,一个表可以有多个表段;或者可以在一个称为聚簇的段中创建一个表,此时这个表可能与其他表在一个聚簇段中。
不过,最常见的情况是,表是一个段,索引也是一个段。
SQL> create table t(x int primary key , ,y clob,z blob);
Table created.
这个语句创建6个段,假设使用的是Oracle Database 11g Release1之前的版本,因为如果是Oracle Database 11g Release 2及以上版本,在默认情况下,段创建会延迟到插入了第1行之后。
SQL> select segment_name,segment_type
2 from user_segments;
SEGMENT_NAME SEGMENT_TYPE
-------------------- --------------------
DEPT TABLE
EMP TABLE
SALGRADE TABLE
PK_DEPT INDEX
PK_EMP INDEX
SQL> drop table t;
Table dropped.
SQL> create table t
2 (x int primary key,
3 y clob,
4 z blob)
5 segment creation immediate
6 /
Table created.
SQL> select segment_name,segment_type
2 from user_segments;
SEGMENT_NAME SEGMENT_TYPE
-------------------------------------------------- ----------------------------------------
DEPT TABLE
EMP TABLE
SALGRADE TABLE
T TABLE
PK_DEPT INDEX
PK_EMP INDEX
SYS_IL0000076785C00002$$ LOBINDEX
SYS_IL0000076785C00003$$ LOBINDEX
SYS_C0011659 INDEX
SYS_LOB0000076785C00002$$ LOBSEGMENT
SYS_LOB0000076785C00003$$ LOBSEGMENT
11 rows selected.
在这个例子中,表本身创建了一个段:如输出中最后一行所示。这里主键约束创建了一个索引段,以保证唯一性。另外,每个LOB列分别创建了两个段:一个段用于存储字符大对象(character large object,CLOB)或二进制大对象(binary large object,BLOB)所指的实际数据块,另一个段用于“组织”这些数据块。LOB为非常大块的信息提供了支持,可以多达几GB。LOB存储在lobsegment的块中,lobindex用于跟踪这些LOB块在哪里,以及应该以何种顺序来访问它们。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5275.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
