oracle同时查询多个分区_Oracle 逻辑结构篇 之逻辑结构(三)段和区

三、段

在数据库中包含了,每个表空间物理上对应着磁盘上的一个或多个数据文件DATAFILE),一个数据文件只能属于一个表空间。每个表空间又有多个段(SEGMENT组成。

(一)、段类型

当建立数据对象(表、索引、簇等)时,Oracle 会自动给这些数据对象分配相应的存储空间,以存放它们的数据信息,这些为数据对象所分配的存储空间被称为段。一个段只能存放在一个表空间上,但是可分布在属于这个表空间中的多个数据文件中。段是由一个或多个区组成的,段的大小是该段所有区大小总和。在 Oracle 数据库中,每个段只属于一个特定的数据库对象(表、索引等),在这个段中至少包含一个区(初始区)。每种数据对象都具有相应的段,Oracle 提供了以下一些段类型:

1)表段(Table):

表是在数据库内存储数据的最常用方法。表段用于存储常规表(非集簇且未分区)的的数据。表段中的所有数据都必须存储在一个表空间内。例如,当在 USERS_DATA 表空上建立表 S_EMP 时,Oracle 会建立名称为 S_EMP 的表段,并且将该表的所有数据存放在USERS_DATA 表空间上。如果表中有 LOB 列或 VARRAY 列,那么该表不会将这些数据列存储在同一个段。

2)表分区段(Table Partition):

表分区主要用于数据仓库应用。当表中包含大量数据且表的并发使用率很高时,可以把一张大表数据划分成几个小的分区,其中每个分区对应于一个段,这种段类型被称为表分段,并且每个表分区段可以存放到不同表空间上。使用表分区可以降低 I/O 次数,提高 /O 性能。表分区后,每个分区都是一个段,可以指定存储参数单独对它们进行控制。假定一张销售表年数据总量达到 10GB,每个季度平均 2.5GB,如果使用普通表存储数据,那么0GB 数据会存放到一个表段中,那么在统计一季度销售数据时需要扫描 10GB 数据;而如果使用表分区段,那么可以将一、二、三、四季度数据分别存放到不同表分区段中,此时统计一季度销售数据只需要扫描 2.5GB 数据。显然,使用表分区段可以大大降低 I/O 次数并提高 I/O 性能。

注意:使用这种类型的段需要在 Oracle9i 企业版内选择分区(Partitioning) 组件

3)簇段(Cluster):

簇与表一样,是一种数据段类型。簇内的行是基于键值存储的,一个簇可以包含一个或多个表,一个簇内所有的表属于同一个段,并且区和块的存储管理方式也完全相同。例如,如果经常要执行主从表之间的连接查询,那么可以将这两张表的数据组织到簇中。簇段的名称与簇名完全相同。注意,当将表放到簇中时,表的数据存放在簇段中,而不会为该表建立专门的表段。假定在 USERS 表空间上建立簇 ORD_ITEM_CLU,并且将表 ORD 和 ITEM 组织到该簇中,此时只会建立簇段 ORD_ITEM_CLU,而不会建立表段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值