Oracle -- 分区

分区基本概念

  1. 分区提供了一种在多个段中存储大型数据库结构(表、索引、物化视图甚至定义为表列的二进制或字符对象)的机制。
  2. 对绝大多数SQL,与访问非分区的表相比,没有必要转变为访问分区表。
  3. 如果基于应用程序的访问需求,分区模式进行合理的设计,其结果将是应用程序具有更理想的性能和扩展性。
  4. DBA和开发人员需要共同确定分区模式。

简单来说就是“分而治之”。

  • 当行进入数据库或者当对行进行修改时,根据行在指定为分区键的列中的值,每个行分配至不同的分区。
  • SQL查询需要根据位于分区键的值查找记录时,Oracle知道应该搜索那个分区。
  • 大数据对象 (表, 索引)被分成小物理段
  • 分区字段值可以修改。(row movement enabled)
  • 分区可以存储在不同的表空间
  • 分区可以有不同的物理存储参数

分区方法

  • 范围
  • Hash
  • 列表
  • 组合

范围分区特点:

-最早、最经典的分区算法
-Range分区通过对分区字段值的范围进行分区
-Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等。
-数据管理能力强

  • 数据迁移
  • 数据备份
  • 数据交换

-范围分区的数据可能不均匀
-范围分区与记录值相关,实施难度和可维护性相对较差

Hash分区特点:
- 基于分区字段的HASH值,自动将记录插入到指定分区。
- 分区数一般是2的幂
- 易于实施
- 总体性能最佳
- 适合于静态数据
- HASH分区适合于数据的均匀存储
- 数据管理能力弱
- HASH分区对数据值无法控制,哈希算法Oracle确定

列表分区特点:
- List分区通过对分区字段的离散值进行分区。
- List分区是不排序的,而且分区之间没有关联关系
- List分区适合于对数据离散值进行控制。
- List分区只支持单个字段。
- List分区具有与范围分区相似的优缺点(数据管理能力强、实施和可维护性相对较差、数据可能不均匀)

复合分区特点:
- Oracle支持的Composite分区:Range-Hash, Range-List
- 既适合于历史数据,又适合于数据均匀分布
- 与范围分区一样提供高可用性和管理性
- 实现粒度更细的操作

序列
很多应用程序都有这样的需求:既为类似订单数之类的对象生成唯一的键值。
常见做法是:
创建一个包含一个数值的列和行的表。每当需要一个新值时,应用程序会将该值递增1,然后将该值写回数据库。
在oracle中提供了一种新的对象,在不需要串行化所有事务的条件下,该对象可实现同样的功能。
-序列给内存提供唯一的整数,事务不需锁定,直接从内存获取该唯一的整数。

特点:

  • 数百或数千个事务可以在互不干扰的情况下同时请求。只有当保存所生成数字的调整缓冲区需要刷新时,才需要等待。
  • 如果刷新过于频繁,则用alter sequence增加该缓冲的大小。
  • 其不足是:尽管要确保这些数字是唯一的,但并不要求它们是连续的。一旦访问该序列,则100个值缓存至内存。如果此时数据库实例重启,则这些数字会丢失,而且会为重启的数据库实例生成接下来的100个数字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值