Oracle 多键值分区测试

分区可以按照两个字段分区,先比较第一个列,如果满足,则忽略第二列,如果第一个不满足,则需要比较第二个列。这种分区的方式有点难以让人理解,建议不要使用。

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> create table test (

year          number(4),

month         number(4),

day           number(4))

partition by range (year,month)

(partition p1 values less than (2014,1),

partition p2 values less than (2014,6),

partition p3 values less than (2014,10),

partition p4 values less than (2014,12),

partition p_max values less than (MAXVALUE,0));

SQL> insert into test values(2013,12,12);

SQL> insert into test values(2014,1,17);

SQL> insert into test values(2014,7,17);

SQL> insert into test values(2014,11,1);

SQL> commit;

SQL> select * from test partition(p1);

YEAR      MONTH        DAY

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

2013         12         12

SQL> select * from test partition(p2);

YEAR      MONTH        DAY

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

2014          1         17

SQL> select * from test partition(p3);

YEAR      MONTH        DAY

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

2014          7         17

SQL> select * from test partition(p4);

YEAR      MONTH        DAY

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

2014         11          1

时间: 2024-10-06 23:04:22

Oracle 多键值分区测试的相关文章

Erlang静态键值对(key-value)数据分别写入erl文件与ETS表读取的测试

1.前言 昨晚在Erlang技术交流群问了这样一个问题: 我现在有1万多条静态的key-value数据,我现在是直接生成如下代码来使用: get(key1) ->value1; get(key2) ->value2; ...... get(keyN) ->valueN. 问题: 1.有没有更高效的方式? 2.Erlang的匹配用的是什么算法? 3.在源码的何处可以看到函数匹配的实现原理? 有人建议用ETS,所以就此进行了简单测试. 2.测试代码 3.运行测试 相同的键值对数据分别写入et

测试对应键盘各键的键值

<script type="text/javascript" language="javascript"> function getKeyCode(){ //弹出键值  alert(event.keyCode);  } //键盘按下事件 document.onkeydown=getKeyCode; </script> 测试对应键盘各键的键值

Oracle复合B*tree索引branch block内是否包含非先导列键值?

好久不碰数据库底层细节的东西,前几天,一个小家伙跑来找我,非要说复合b*tree index branch block中只包含先导列键值信息,并不包含非先导列键值信息,而且还dump了branch block,用以证明他的说法,从常理和SQL的语句执行信息就可以知道,他的说法是有问题的,但如何证明这一点呢?为了证明这点,也麻烦一次,玩玩多年不碰的dump.下面是他证明自己观点的两个dump结果(一个为单键索引,另一个是复合索引): 下面是本人的测试过程和结果: create table t1(c

mybatis在oracle插入对象后返回主键值

在mybatis中默认插入一条记录后,返回值为插入记录的条数. 现在想获取插入记录后,当前被插入的记录的主键值,需在insert方法中添加如下代码: <insert id="insert" parameterType="cn.com.pm.ppm.model.UserInfo" >   <selectKey resultType="java.math.BigDecimal" order="BEFORE" ke

【转】js 对象按照键值(不分区大小写)排序,生成签名方法

客户需求小程序端用js生成签名,我们按照要求一步一步解决,并且将请求方法封装到一个utils.js里: 第一步:对关联数组按照键名做正序排序. 第二步:拼接字符串 第三步:将拼接的字符串加上私钥 第四步:将以上字符串MD5加密 const md5 = require('md5.js'); var appsecret ="appsecret "; var App_Key ="App_Key "; //字母排序:不区分大小写 function sortCharter(a

实现键值对存储(三):Kyoto Cabinet 和LevelDB的架构比较分析

译自  Emmanuel Goossaert (CodeCapsule.com) 在本文中,我将会逐组件地把Kyoto Cabinet 和 LevelDB的架构过一遍.目标和本系列第二部分讲的差不多,通过分析现有键值对存储的架构来思考我应该如何建立我自己键值对存储的架构.本文将包括: 1. 本架构分析的意图和方法 2. 键值对存储组件概览 3. Kyoto Cabinet 和LevelDB在结构和概念上的分析 3.1 用Doxygen建立代码地图 3.2 整体架构 3.3 接口 3.4 参数化

IBatisNet:让insert操作返回新增记录的主键值

项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目目录结构: 项目中使用ibatis做数据访问层已经有好长时间了.开发小组成员反映ibatis的insert操作返回的结果是null,这一点很是不爽. 其实,大家都是希望能够把新增记录的主键值返回出来. 上上周,大家有反编译ibatis的包,查看其实现原理,后来,又尝试其他方法,都没能给实现这个功能.

自增长的聚集键值不会扩展(scale)

如何选择聚集键值的最佳实践是什么?一个好的聚集键值应该有下列属性: 范围小的(Narrow) 静态的(Static) 自增长的(Ever Increasing) 我们来具体看下所有这3个属性,还有在SQL Server里为什么自增长值实际上是不会扩展的. 范围小的(Narrow) 聚集键值应该i越小越好.为什么?因为它要占用空间,聚集键值也在每个非聚集索引的叶子曾作为逻辑指针.如果你的聚集键值很广,你的非聚集索引也会很大.如果你定义了非唯一非聚集索引(Non-Unique Non-Cluster

oracle主键自增(1) 序列+触发器实现Oracle主键自增

序列+触发器实现Oracle主键自增 序列的语法格式为: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; INCREMENT BY 用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表序列的值是按照此步长递减的. START WITH 定义Oracle序列的初始值(即产生的第一个值),