在11g有一个新的特点是分区表系统。下面做一个实验:

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

PL/SQL Release 11.2.0.1.0 - Production

CORE    11.2.0.1.0      Production

TNS for Linux: Version 11.2.0.1.0 - Production

NLSRTL Version 11.2.0.1.0 - Production

SQL> drop table S_P_TEST purge;

SQL> CREATE TABLE S_P_TEST

    (

     col1 number,

     name varchar2(100)

    )

    PARTITION BY SYSTEM

    (

      PARTITION p1,

      PARTITION p2,

      PARTITION p3,

      PARTITION p4

   );



--插入时要指明分区

SQL> insert into S_P_TEST select object_id,object_name from dba_objects;

insert into S_P_TEST select object_id,object_name from dba_objects

            *

第 1 行出现错误:

ORA-14701: 对于按“系统”方法进行分区的表, 必须对 DML 使用分区扩展名或绑定变量

SQL> insert into S_P_TEST partition(p1) select object_id,object_name from dba_objects

    where object_type='TABLE';

已创建2115行。

SQL> insert into S_P_TEST partition(p2) select object_id,object_name from dba_objects

    where object_type='INDEX';

已创建2888行。

SQL> commit;

SQL> select count(1) from S_P_TEST;

  COUNT(1)

----------

      5003

SQL> select count(1) from S_P_TEST  partition(p1);

  COUNT(1)

----------

      2115

SQL> select count(1) from S_P_TEST  partition(p2);

  COUNT(1)

----------

      2888

--同样的数据能够插入到不同的分区中,这说明数据和分区没有不论什么关系

SQL> insert into S_P_TEST partition(p3) values(1,'aa');

SQL> insert into S_P_TEST partition(p4) values(1,'aa');

SQL> commit;

SQL> select * from S_P_TEST  partition(p3);

      COL1 NAME

---------- ------------------------------------------

         1 aa

SQL> select * from S_P_TEST  partition(p4);



      COL1 NAME

---------- -----------------------------------------

         1 aa



--传统的分区裁剪和分区智能关联无效,不能建立本地化的索引

SQL> ALTER TABLE S_P_TEST SPLIT PARTITION p1 at(1000)

     into(partition p3,partition p4);

ALTER TABLE S_P_TEST SPLIT PARTITION p1 at(1000)

            *

第 1 行出现错误:

ORA-14255: 未按范围, 列表, 组合范围或组合列表方法对表进行分区

--假设你知道数据在哪个表里面,做好要制定分区条件

SQL> set autotrace traceonly

SQL> select * from S_P_TEST where col1=1;

运行计划

----------------------------------------------------------

Plan hash value: 2020968526

-------------------------------------------------------------------------------------------------

| Id  | Operation            | Name     | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |

-------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT     |          |     2 |   130 |    10   (0)| 00:00:01 |       |       |

|   1 |  PARTITION SYSTEM ALL|          |     2 |   130 |    10   (0)| 00:00:01 |     1 |     4 |

|*  2 |   TABLE ACCESS FULL  | S_P_TEST |     2 |   130 |    10   (0)| 00:00:01 |     1 |     4 |

-------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   2 - filter("COL1"=1)

Note

-----

   - dynamic sampling used for this statement (level=2)

统计信息

----------------------------------------------------------

          5  recursive calls

          0  db block gets

         70  consistent gets

          0  physical reads

          0  redo size

        414  bytes sent via SQL*Net to client

        338  bytes received via SQL*Net from client

          2  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

          2  rows processed

SQL> select * from S_P_TEST partition(p3) where col1=1;

运行计划

----------------------------------------------------------

Plan hash value: 1626227678

----------------------------------------------------------------------------------------------------

| Id  | Operation               | Name     | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |

----------------------------------------------------------------------------------------------------

|   0 | SELECT STATEMENT        |          |     1 |    65 |     4   (0)| 00:00:01 |       |       |

|   1 |  PARTITION SYSTEM SINGLE|          |     1 |    65 |     4   (0)| 00:00:01 |     3 |     3 |

|*  2 |   TABLE ACCESS FULL     | S_P_TEST |     1 |    65 |     4   (0)| 00:00:01 |     3 |     3 |

----------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   2 - filter("COL1"=1)

Note

-----

   - dynamic sampling used for this statement (level=2)

统计信息

----------------------------------------------------------

          5  recursive calls

          0  db block gets

         15  consistent gets

          0  physical reads

          0  redo size

        385  bytes sent via SQL*Net to client

        338  bytes received via SQL*Net from client

          2  SQL*Net roundtrips to/from client

          0  sorts (memory)

          0  sorts (disk)

1  rows processed

系统分区表的使用场景我想并不多,假设对传统的分区表数据的特性理解是:1.数据和分区是有联系的; 2.分区就是把非常多的表粘在管理结合起来。

该系统分区表只有第二特征。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Oracle 11g系统分区表中的新功能的更多相关文章

  1. 先学习Oracle 11g的Automatic Diagnostic Repository新功能

    Oracle 11g之前.当数据库出现故障,通常情况下,第一次需要看alert刊物.什么,看看哪些记录错误,您可以给我们的提示.alert文件名 是alert_<ORACLE_SID>.l ...

  2. SQLSERVER2014中的新功能

    SQLSERVER2014中的新功能 转载自:http://blog.csdn.net/maco_wang/article/details/22701087 博客人物:maco_wang SQLSER ...

  3. Oracle 11G R2 RAC中的scan ip 的用途和基本原理【转】

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  4. PhotoZoom Classic 7中的新功能

    众所周知PhotoZoom Classic是家庭使用理想的放大图像软件.目前很多用户还在使用PhotoZoom Classic 6,对于PhotoZoom Classic 7还是有点陌生.其实在6代衍 ...

  5. ECMAScript 2016,2017 和 2018 中所有新功能的示例

    很难追踪 JavaScript(ECMAScript)中的新功能. 想找到有用的代码示例更加困难. 因此,在本文中,我将介绍 TC39 已完成 ES2016,ES2017 和 ES2018(最终草案) ...

  6. [转]ECMAScript 2016,2017 和 2018 中所有新功能的示例

    很难追踪 JavaScript(ECMAScript)中的新功能. 想找到有用的代码示例更加困难. 因此,在本文中,我将介绍 TC39 已完成 ES2016,ES2017 和 ES2018(最终草案) ...

  7. 一个新人如何学习在大型系统中添加新功能和Debug

    文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业 ...

  8. Oracle 11G R2 RAC中的scan ip 的用途和基本原理

    Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...

  9. Java 17 将要发布,补一下 Java 13 中的新功能

    本文章属于Java 新特性教程 系列,已经收录在 Github.com/niumoo/JavaNotes ,点个赞,不迷路. 自从 Oracle 调整了 Java 的版本发布节奏之后,Java 版本发 ...

随机推荐

  1. 27、从零写UVC驱动之分析数据传输(设置ubuntu通过串口打印,指定打印到文件,ubuntu切换root用户)

    A. 设置ubuntu让它从串口0输出printk信息a. 设置vmware添加serial port, 使用文件作为串口(在vmware中设置,文件是保存在windows中)b. 启动ubuntu, ...

  2. python类继承时构造函数的运行问题

    假设子类定义了自己的__init__构造方法函数.当子类的实例对象被创建时,子类仅仅会运行自己的__init__方法函数.假设子类没有定义自己的构造方法函数.会沿着搜索树找到父类的构造方法函数去运行父 ...

  3. 【2186】Popular Cows(强连通分支及其缩点)

    id=2186">[2186]Popular Cows(强联通分支及其缩点) Popular Cows Time Limit: 2000MS   Memory Limit: 65536 ...

  4. JavaScript中的一些细节 分类: C1_HTML/JS/JQUERY 2014-08-05 16:45 384人阅读 评论(0) 收藏

    1.设置id / class等属性 用 setAttribute 设置一些常规属性如 id ,className 的时候经常不起作用,只能用 object.id = value 这样来设置 news_ ...

  5. 搭建基于java环境

    .net项目架构改造之搭建基于java环境配置一览[上]   最近公司做了一个项目,需要嵌套在千牛的客户端上,项目代码必须上阿里的聚石塔,全程采用基于docker的自动化部署,我们的项目是基于.net ...

  6. AOP 专题

    Spring框架有两个核心思想:IOC和AOP Spring IOC指的是控制翻转,使用普通JAVA Bean,在运行时由Spring容器统一管理和串联,服务于不同的流程,在开发过程中对Spring ...

  7. 关于DP与背包

    听说过动态规划(DP)的同学应该都知道有背包问题的存在. 首先我们来了解一下动态规划 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题.在这类问题中, 可能会有很多可行解.没一个解都对应于一 ...

  8. hibernate级联保存问题

    异常:org.hibernate.TransientObjectException: object references an unsaved transient instance 解决方法: XML ...

  9. Dynamips GNS3

    https://baike.baidu.com/item/dynamips Dynamips的原始名称为Cisco 7200 Simulator,源于Christophe Fillot在2005年8月 ...

  10. 以Network Dataset(网络数据集)方式实现的最短路径分析

    转自原文 以Network Dataset(网络数据集)方式实现的最短路径分析 构建网络有两种方式,分别是网络数据集NetworkDataset和几何网络Geometric Network,这个网络结 ...