重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3612|回复: 1
打印 上一主题 下一主题

[Oracle] oracle 11g 分区之七:system分区

[复制链接]
跳转到指定楼层
楼主
发表于 2018-9-7 17:34:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前的分区表,需要指定一个或多个分区字段,并根据这个分区字段的值,按照一定的算法(RANGE、HASH和LIST)来决定一条记录属于那个分区。
  从11g开始,Oracle允许用户不指定分区列,完全根据程序来控制数据存储在那个分区中。这就是11g提供的系统分区功能。
  在以前,确定了分区列和分区方式,那么一条数据属于哪个分区也就被确定下来。而对于系统分区而言,分区是分区,数据是数据,二者没有对应的关系。
  数据可以被放在任意一个分区中,这不是由数据本身决定的,而是应用程序在插入时确定的。
  示例:
  CREATE TABLE T_SYSTEM
    (ID NUMBER,
     NAME VARCHAR2(30)
     )
    PARTITION BY SYSTEM
    (PARTITION P1,
     PARTITION P2,
     PARTITION P3,
     PARTITION P4
     );
   这里需要注意的是在插入时必须指定分区
   SQL> INSERT INTO T_SYSTEM VALUES (1, 'ABC');

   INSERT INTO T_SYSTEM VALUES (1, 'ABC')

   ORA-14701: 对于按“系统”方法进行分区的表, 必须对 DML 使用分区扩展名或绑定变量
   SQL>  INSERT INTO T_SYSTEM PARTITION (P1) VALUES (1, 'ABC');

   1 row inserted

   SQL>  INSERT INTO T_SYSTEM PARTITION (P2) VALUES (1, 'ABC');

   1 row inserted


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2019-4-26 11:53:12 | 只看该作者
个人感觉,这个特性对于管理上的优势可能比较大。比如,在应用中,我们可以控制数据插入到哪个分区中,如果是OLTP系统,就是将负载集中在某个分区上。其他分区就可以进行日常的运维工作。

那么,这个特点在没有System Partition的时候,也是可以实现,就是通过额外的数据列中定义存储位置。这种方法的缺点是技术部署细节传导入业务模型层面。而System Partition就是实现了这个功能
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-21 14:57 , Processed in 0.085226 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表