ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 学习之应用基础(2)

学习之应用基础(2)

原创 Linux操作系统 作者:simkyo 时间:2013-06-21 17:14:08 0 删除 编辑
表分区
一. 分区表理论知识
       Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。       分区完全对应用透明。
       Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。
When to Partition a Table什么时候需要分区表,官网的2个建议如下:
(1)Tables greater than 2GB should always be considered for partitioning.
(2)Tables containing historical data, in which new data is added into the newest partition. A typical example is a historical table where only the current month's data is updatable and the other 11 months are read only.
在oracle 10g中最多支持:1024k-1个分区:
      Tables can be partitioned into up to 1024K-1 separate partitions
联机文档上有关分区表和索引的说明:
      Partitioned Tables and Indexes
       http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/partconc.htm#sthref2604
分区提供以下优点:
       (1)由于将数据分散到各个分区中,减少了数据损坏的可能性;
       (2)可以对单独的分区进行备份和恢复;
       (3)可以将分区映射到不同的物理磁盘上,来分散IO;
       (4)提高可管理性、可用性和性能。
Oracle 10g提供了以下几种分区类型:
       (1)范围分区(range);
       (2)哈希分区(hash);
       (3)列表分区(list);
       (4)范围-哈希复合分区(range-hash);
       (5)范围-列表复合分区(range-list)。
Range分区:
  Range分区是应用范围比较广的表分区方式,它是以列的值的范围来做为分区的划分条件,将记录存放到列值所在的range分区中。
       如按照时间划分,2010年1月的数据放到a分区,2月的数据放到b分区,在创建的时候,需要指定基于的列,以及分区的范围值。
       在按时间分区时,如果某些记录暂无法预测范围,可以创建maxvalue分区,所有不在指定范围内的记录都会被存储到maxvalue所在分区中。
如:
create table pdba (id number, time date) partition by range (time)
(partition p1 values less than (to_date('2010-10-1', 'yyyy-mm-dd')),
partition p2 values less than (to_date('2010-11-1', 'yyyy-mm-dd')),
partition p3 values less than (to_date('2010-12-1', 'yyyy-mm-dd')),
partition p4 values less than (maxvalue))

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12961536/viewspace-764548/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-06-20

  • 博文量
    193
  • 访问量
    165517