oracle分区的exchange操作非常快,那原理是什么呢?下面我们来做个实验:

SQL> create table test (id number(3));
表已创建。

SQL> insert into test values (1);
已创建 1 行。

SQL> commit;
提交完成。

SQL> select object_id,data_object_id from user_objects s where s.object_name='TEST';
 OBJECT_ID DATA_OBJECT_ID
---------- --------------
    180148         180148

SQL> create table test_part(id number(3)) partition by range(id)
  2      (partition p1 values less than (10),
  3       partition p2 values less than (20));
表已创建。

SQL> col object_name format a20
SQL> col subobject_name format a20
SQL> select object_name,s.subobject_name,object_id, data_object_id
  2    from user_objects s
  3   where s.object_name = 'TEST_PART';
 
OBJECT_NAME          SUBOBJECT_NAME        OBJECT_ID DATA_OBJECT_ID
-------------------- -------------------- ---------- --------------
TEST_PART            P1                       180150         180150
TEST_PART            P2                       180151         180151
TEST_PART                                     180149

SQL> select * from test;
        ID
----------
         1
SQL> select * from test_part;
未选定行

SQL> alter table test_part exchange partition p1 with table test;
表已更改。

SQL> select * from test;
未选定行

SQL> select * from test_part;
        ID
----------
         1
SQL> select * from test_part partition (p1);

ID
----------
         1

SQL> select object_id,data_object_id from user_objects s where s.object_name='TEST';
 OBJECT_ID DATA_OBJECT_ID
---------- --------------
    180148         180150

SQL> select object_name,s.subobject_name,object_id, data_object_id
  2    from user_objects s
  3   where s.object_name = 'TEST_PART';
OBJECT_NAME          SUBOBJECT_NAME    OBJECT_ID   DATA_OBJECT_ID
-------------------- ---------------- ----------   --------------
TEST_PART            P1                 180150         180148
TEST_PART            P2                 180151         180151
TEST_PART                               180149

exchange只是在oracle的数据字典中修改了分区和表的结构。数据并未发生任何修改,因此速度很快。更详细一点就是只是把不同object_id 对应的data_object_id交换了一下,而segment本身并没有改变,和物理存储位置无关,但必须是分区表和非分区表 之间才可以交换。

oracle 分区表exchange原理的更多相关文章

  1. 深入学习Oracle分区表及分区索引

    关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Has ...

  2. oracle 分区表和分区索引

    很复杂的样子,自己都没有看完,以备后用 http://hi.baidu.com/jsshm/item/cbfed8491d3863ee1e19bc3e ORACLE分区表.分区索引ORACLE对于分区 ...

  3. ORACLE分区表、分区索引详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt160 ORACLE分区表.分区索引ORACLE对于分区表方式其实就是将表分段 ...

  4. 【三思笔记】 全面学习Oracle分区表及分区索引

    [三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可 ...

  5. Oracle分区表管理的一些笔记

    [转自] http://www.linuxidc.com/Linux/2011-07/38381.htm Oracle分区表的管理笔记(仅限于对普通表,即堆表的分区管理,IOT跟CLUSTER TAB ...

  6. 性能-发挥ORACLE分区表

    ORACLE分区表发挥性能 http://www.cnblogs.com/zwl715/p/3962837.html 1.1 分区表PARTITION table 在ORACLE里如果遇到特别大的表, ...

  7. Oracle 分区表管理之组合分区(分区索引失效与性能比较)

    整体结构如下: Oracle  分区表管理之组合分区(分区索引失效与性能比较) 虽然老早就使用了分区表,终于有时间写有关分区表的内容:不是所有的场景数据量变大需要用到分区表,一般单表数据超过2g可以考 ...

  8. 谈一下如何设计Oracle 分区表

    在谈设计Oracle分区表之间先区分一下分区表和表空间的个概念: 表空间:表空间是一个或多个数据文件的集合,所有数据对象都存放在指定的表空间中,但主要存放表,故称表空间. 分区表:分区致力于解决支持极 ...

  9. mysql分区表的原理和优缺点

    1.分区表的原理 分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分 ...

随机推荐

  1. springMVC + mybatis 搜索 分页等

    mybatis-3.0.5spring-core-3.2.0.RELEASE等MyBatis3+Spring3当前Spring版本(3.0.5)中未提供对MyBatis3的支持使用第三方jar包进行整 ...

  2. 2013杭州网络赛C题HDU 4640(模拟)

    The Donkey of Gui Zhou Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  3. zzuli生化危机(dfs)

    生化危机 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 73  Solved: 21SubmitStatusWeb Board Description ...

  4. easui tree载入时自动展开无子节点的节点

    利用loadFilter对后台返回的原始数据进行过滤处理,将数据中的state字段修改相应的值,若无子节点,则改成open,若有子节点,则改成closed. 由于一个node属性只有下面几项内容,因此 ...

  5. Easyui中tree组件实现搜索定位功能及展开节点定位

    这几天遇到个input + tree  实现搜索功能的需求,在这里贴出来供大家参考下,如果你有更好的实现效果希望不腻赐教! 首先给大家看看效果     小二 上图  : 需要的部件知识: easyui ...

  6. Java Pattern Matcher 正则应用

    转自:http://www.itzhai.com/java-notes-regex-matches-and-lookingat.html#read-more 1.基本语法 2.String内建的正则表 ...

  7. 利用CentOS系统IPtables防火墙添加网站IP白名单

    参考博文: 利用CentOS系统IPtables防火墙添加360网站卫士节点IP白名单 centos6.5添加白名单如下: 在防火墙 配置文件中加入白名单  ip -A INPUT -s 183.13 ...

  8. php 学习笔记 数组3

    15.使用数组 1).并集(union)  array_merge(array1,array2,array3..) 函数把两个或多个数组合并为一个数组,后面覆盖前面 2). 交集(intersecti ...

  9. jquery倒计时自动跳转

    刚开始我用下面这种方法一直报错,不知是什么原因,就是多加了页面加载时调用这个方法,还请高手看到后小小留言解惑

  10. iOS5.1下emoji表情显示方框的解决办法

    在iOS5.1的部分设备上,emoji表情无法正常显示.我测试了一下,iOS5.1(9B176 for iPhone 4)无法正常显示emoji,全部是方框iOS5.1(9B179 for iPhon ...