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            P1180150         180150TEST_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            P1180150         180148TEST_PART            P2                 180151         180151

TEST_PART                               180149

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

oracle分区exchange,oracle 分区表exchange原理相关推荐

  1. oracle分区备份,oracle分区表备份,只还原1个分区

    oracle分区表备份,只还原1个分区 2016-06-06 oracle分区表备份,只还原1个分区,使用statistics=none,也就是不导出统计信息. alter table ANONYMO ...

  2. oracle 分区概念,Oracle 分区的概念

    Oracle 分区的概念 分区是指将巨型的表或索引分割成相对较小的.可独立管理的部分,这些独立的部分称为原来表或索引的分区.分区后的表与未分区的表在执行查询语句或其他DML语句时没有任何区别,一旦进行 ...

  3. mysql 不同分区 同时insert_Mysql分区表的原理和优缺点

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

  4. oracle分区list,Oracle 分区表中存在range-list表分区时遇到问题及解决办法

    Oracle 分区表中存在range-list表分区时遇到问题及解决办法 我们遇到的通常是list分区这种居多,我就不介绍了. 以下解决的是 复合分区情况 表已存在,需要在范围分区中增加一个分区 我们 ...

  5. oracle分区区别,oracle范围分区表和INTERVAL分区表对于SPLIT分区的区别

    范围分区表和INTERVAL分区表是可以相互转化的,不过二者还是有所区别的.比如在SPLIT分区的时候,范围分区表没有限制,而INTERVAL分区表则可能报错. 首先看范围分区的例子: SQL> ...

  6. oracle分区 varchar2,oracle分区怎么使用

    1.什么是分区 分区的实质是把一张大表的数据按照某种规则使用多张子表来存储.然后这多张子表使用统一的表名对外提供服务,子表实际对用户不可见.类似于在多张子表上建立一个视图,然后用户直接使用该视图来访问 ...

  7. oracle分区设计,​Oracle 分区

    所谓分区是指把一张表和索引划分为若干小块, 在创建表的结构时应该考虑好分区方案, 选择表中某一列或多列数据作为关键字, 该关键字决定哪些数据分到哪些区, Oracle对分区进行管理, 插入数据自动存储 ...

  8. Oracle分区(Partition)

    项目中用到的partition,总结整理一下相关知识.(网上采集,如有侵权,请及时联系.)   一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而 ...

  9. Oracle分区详细解析

    一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而治之"的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的.单独 ...

  10. Oracle分区简介

    Oracle分区简介 partition 一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而治之"的技术,通过将大表和索引分成可以管理的 ...

最新文章

  1. IOS开发系列--IOS程序开发概览
  2. nginx location 在配置中的优先级
  3. Struts2拦截器实现异常处理机制
  4. IFRAME自动适应的问题
  5. java8 默认方法_Java 8的默认方法:可以做什么和不能做什么?
  6. 【Python CheckiO 题解】The Most Wanted Letter
  7. 渗透测试入门2之进入内网
  8. 如何画c语言箭头鼠标,简单的鼠标绘图程序
  9. xp系统怎么定时锁定计算机,电脑怎么设置自动锁屏_XP系统电脑怎么设置自动锁屏...
  10. Office基础操作:Word插入visio图片显示不全
  11. mac mysql客户端工具 知乎_Mac OS X 平台上有哪些好用且免费的MySQL客户端工具?
  12. 余世维《成功经理人讲座》之重要又紧急的事情
  13. 2021年下半年软件设计师下午真题及答案解析
  14. 计算机excel保留一位小数,excel表格数据取一位小数-excel保留一位小数
  15. 我的理想200字计算机工程师,我的理想工程师作文(我的理想是做一名工程师)...
  16. “中年跳槽,伤筋动骨”,你可要想清楚
  17. 关于结构光问题的总结
  18. 2018再见|2019你好
  19. 无所不能,传感器黑科技层出不穷
  20. 微信公众号支付的回调地址 不起作用的问题

热门文章

  1. .NET Core 3.0 的新改进:针对分布式应用程序的故障诊断和监控
  2. .NET如何将字符串分隔为字符
  3. .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱
  4. IdentityServer4(10)- 添加对外部认证的支持之QQ登录
  5. 初探SQL Server 2017 on Docker@macOS
  6. 编程语言的发展趋势及未来方向(2):声明式编程与DSL
  7. .NET程序员走向高端必读书单汇总
  8. ASP.NET Core 中文文档 第一章 入门
  9. pytesseract:opencv预处理图片
  10. [转]总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .