1. 段用于存储特定对象的所有数据,它是由一个或多个区组成的。当建立表,索引,和簇等对象时,oracle会为这些对象分配存储空间,以存放它们的数据信息。
2. 表段,用于存储表的所有数据,其名称与表明相同。建立表时,Oracle会为该表建立相应的表段,并且表段只能存放在一个表空间中。
3. 表分区段,用于存储分区表某个分区的内容,每个分区对应一个表分区段。通过使用分区选项,可以将一张大表的数据部署到多个不同的分区段中,从而降低I/O次数,提高IO性能。
4. 簇段(Cluster)簇段用于存储簇表的数据,其名称与簇名相同。簇用于逻辑组织相关表的数据,使用簇的目的是为了降低IO次数,提高IO性能。例如,如果经常执行主从表之间的连接查询,可以将这两张表的数据组织到簇中。一个簇可以包含一个或多个表,当将表组织到簇中时,其数据存放在簇段中,而不会为表分配专门的表段。假定在USERS表空间上建立簇 ORD_ITEM_CLU,并且将表ORD和ITEM组织到该簇中,此时只会分配簇段ORD_ITEM_CLU。而不会分配表段ORD和ITEM。
5. 索引段(Index)
索引段用于存储索引的数据,其名称与索引名完全相同。当建立索引时,Oracle会为索引建立相应的索引段,并且一个索引段只能存放在一个表空间中。
6. 索引段用于存储索引的数据,其名称与索引名完全相同。当建立索引时,Oracle会为索引建立相应的索引段,并且一个索引段只能存放在一个表空间中。例如,当在EMP表上建立索引PK_EMP时,Oracle会奖励索引段PK_EMP。
7. 索引分区段(Index Partition)索引分区段用于存储分区索引某个分区的数据,每个分区对应一个索引分区段。索引分区段类似于表分区,通过分区选项。可以将大索引的数据部署到几个不同的分区段中。索引分区只能建立在分区表上。
8. 索引组织表段(Index-organized Table)
索引组织表是以B*-树结构来组织表数据的。如果某表数据经常需要引用主键列来检索,可以考虑建立索引组织表,以加快数据访问速度。一般情况下,表与索引数据分别存放在表段和索引段中。但是,如果建立索引组织表,表和主键索引的数据会存放在索引段中,需要注意,当建立索引组织表时,必须定义主键列。
9. UNDO段
UNDO段用于存放事务所修改数据的旧值。
10. 临时段
用于存放临时数据
11. LOB段
LOB段用于存储LOB列的数据。例如文献,图像,音频,视频等数据。建立表时,可以定义CLOB,BLOB,NCLOB类型的列。并且ORACLE会自动为这些列建立相应的LOB段。对于LOB列来说,如果长度低于4000字节,该列与其他列的数据会一起存放在表段中;如果长度超过4000,数据将被存放到LOB段中。
12. 显示段信息
建立簇时,Oracle会为其分配簇段;建立表时,Oracle会为其分配表段;建立索引时,Oracle会为其分配索引段。通过查询dba_segments。可以查询数据库包含的所有段类型。