oracle分区exchange,oracle 分区表exchange原理
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原理相关推荐
- oracle分区备份,oracle分区表备份,只还原1个分区
oracle分区表备份,只还原1个分区 2016-06-06 oracle分区表备份,只还原1个分区,使用statistics=none,也就是不导出统计信息. alter table ANONYMO ...
- oracle 分区概念,Oracle 分区的概念
Oracle 分区的概念 分区是指将巨型的表或索引分割成相对较小的.可独立管理的部分,这些独立的部分称为原来表或索引的分区.分区后的表与未分区的表在执行查询语句或其他DML语句时没有任何区别,一旦进行 ...
- mysql 不同分区 同时insert_Mysql分区表的原理和优缺点
分区表的原理 分区表是由多个相关的底层表实现,这些底层表也是由句柄对象表示,所以我们也可以直接访问各个分区,存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表 ...
- oracle分区list,Oracle 分区表中存在range-list表分区时遇到问题及解决办法
Oracle 分区表中存在range-list表分区时遇到问题及解决办法 我们遇到的通常是list分区这种居多,我就不介绍了. 以下解决的是 复合分区情况 表已存在,需要在范围分区中增加一个分区 我们 ...
- oracle分区区别,oracle范围分区表和INTERVAL分区表对于SPLIT分区的区别
范围分区表和INTERVAL分区表是可以相互转化的,不过二者还是有所区别的.比如在SPLIT分区的时候,范围分区表没有限制,而INTERVAL分区表则可能报错. 首先看范围分区的例子: SQL> ...
- oracle分区 varchar2,oracle分区怎么使用
1.什么是分区 分区的实质是把一张大表的数据按照某种规则使用多张子表来存储.然后这多张子表使用统一的表名对外提供服务,子表实际对用户不可见.类似于在多张子表上建立一个视图,然后用户直接使用该视图来访问 ...
- oracle分区设计,Oracle 分区
所谓分区是指把一张表和索引划分为若干小块, 在创建表的结构时应该考虑好分区方案, 选择表中某一列或多列数据作为关键字, 该关键字决定哪些数据分到哪些区, Oracle对分区进行管理, 插入数据自动存储 ...
- Oracle分区(Partition)
项目中用到的partition,总结整理一下相关知识.(网上采集,如有侵权,请及时联系.) 一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而 ...
- Oracle分区详细解析
一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而治之"的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的.单独 ...
- Oracle分区简介
Oracle分区简介 partition 一.Oracle分区简介 ORACLE的分区是一种处理超大型表.索引等的技术.分区是一种"分而治之"的技术,通过将大表和索引分成可以管理的 ...
最新文章
- IOS开发系列--IOS程序开发概览
- nginx location 在配置中的优先级
- Struts2拦截器实现异常处理机制
- IFRAME自动适应的问题
- java8 默认方法_Java 8的默认方法:可以做什么和不能做什么?
- 【Python CheckiO 题解】The Most Wanted Letter
- 渗透测试入门2之进入内网
- 如何画c语言箭头鼠标,简单的鼠标绘图程序
- xp系统怎么定时锁定计算机,电脑怎么设置自动锁屏_XP系统电脑怎么设置自动锁屏...
- Office基础操作:Word插入visio图片显示不全
- mac mysql客户端工具 知乎_Mac OS X 平台上有哪些好用且免费的MySQL客户端工具?
- 余世维《成功经理人讲座》之重要又紧急的事情
- 2021年下半年软件设计师下午真题及答案解析
- 计算机excel保留一位小数,excel表格数据取一位小数-excel保留一位小数
- 我的理想200字计算机工程师,我的理想工程师作文(我的理想是做一名工程师)...
- “中年跳槽,伤筋动骨”,你可要想清楚
- 关于结构光问题的总结
- 2018再见|2019你好
- 无所不能,传感器黑科技层出不穷
- 微信公众号支付的回调地址 不起作用的问题
热门文章
- .NET Core 3.0 的新改进:针对分布式应用程序的故障诊断和监控
- .NET如何将字符串分隔为字符
- .NET Core 实现定时抓取博客园首页文章信息并发送到邮箱
- IdentityServer4(10)- 添加对外部认证的支持之QQ登录
- 初探SQL Server 2017 on Docker@macOS
- 编程语言的发展趋势及未来方向(2):声明式编程与DSL
- .NET程序员走向高端必读书单汇总
- ASP.NET Core 中文文档 第一章 入门
- pytesseract:opencv预处理图片
- [转]总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .