oracle 增加间隔分区,oracle分区表之间隔分区(oracle 11g) - 漫兮网

mxvideo_ad_20110802.png

范围分区允许用户根据分区键列值的范围创建分区。下面是一个按范围分区表的示例:

create table sales6

(

sales_id number,

sales_dt date

)

partition by range (sales_dt)

(

partition p0701 values less than (to_date('2007-02-01','yyyy-mm-dd')),

partition p0702 values less than (to_date('2007-03-01','yyyy-mm-dd'))

);

假如在此处仅针对2007年1月和2007年2月定义了分区,如果表中插入一条sales_dt在2007年3月的记录,会发生什么情况?插入将失败,并显示以下错误:

ORA-14400: inserted partition key does not map to any partition

显然,需要针对2007年3月添加一个分区,然后才能插入一条记录。但通常说起来容易做起来难。通常无法容忍事先创建大量分区,但其中很少一部分可能会产生此错误。

如果Oracle以某种方式自动察觉到对新分区的需要,然后创建它们,这样不是更好吗?Oracle 11g可以,它可以使用一个称为间隔分区的特性。此时,不必定义分区及它们的边界,只需定义一个定义了每个分区边界的间隔。下面是使用间隔分区的示例:

create table sales6

(

sales_id number,

sales_dt date

)

partition by range (sales_dt)

interval (numtoyminterval(1,'MONTH'))

(

partition p0701 values less than (to_date('2007-02-01','yyyy-mm-dd'))

);

注意子句interval后面跟着时间间隔,在此处指示Oracle为每个月份创建一个时间间隔。已经为2007年1月的数据创建了名为p0701的初始分区。现在,假设插入了一条包括2007年6月数据的记录:

SQL> insert into sales6 values (1,'01-jun-07');

1 row created.

Oracle不会返回错误,而是成功执行该语句。那么这条记录将转向何处?p0701 分区不能包括该记录,因为没有为2007年6月定义分区。但此时,如果检查该表的分区:

SQL> select partition_name, high_value

2 from user_tab_partitions

3 where table_name = 'SALES6';

PARTITioN_NAME HIGH_VALUE

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

P0701 TO_DATE(' 2007-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_C

ALENDAR=GREGORIA

SYS_P41 TO_DATE(' 2007-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_C

ALENDAR=GREGORIA

注意名为SYS_P1、HIGH_VALUE为2007年7月1日分区,它最多可以容纳到6月底的数据。该分区是由Oracle动态创建的,并具有一个系统生成的名称。

现在,假设输入一个小于HIGH_VALUE的值,如2007年5月1日。在理想情况下,它应该具有自己的分区,因为分区时间间隔是一个月。

SQL> insert into sales6 values (1,'01-may-07');

1 row created.

SQL> select partition_name, high_value

2 from user_tab_partitions

3 where table_name = 'SALES6';

PARTITioN_NAME HIGH_VALUE

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

P0701 TO_DATE(' 2007-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_C

ALENDAR=GREGORIA

SYS_P41 TO_DATE(' 2007-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_C

ALENDAR=GREGORIA

SYS_P42 TO_DATE(' 2007-06-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_C

ALENDAR=GREGORIA

注意新分区SYS_P42,其上限为6月1日,因此该分区可以保留2006年5月的数据。该分区是通过拆分SYS_P41分区创建的(针对6月份)。因此,当定义一个间隔分区方案时,Oracle会自动创建和维护分区。

如果希望将分区存储在特定表空间中,可以使用store in子句执行该操作:

interval (numtoyminterval(1,'MONTH'))

store in (TS1,TS2,TS3)

该子句以循环方式将分区存储在表空间TS1、TS2和TS3中。

应用程序开发人员如何定位特定分区?一种方法是知道名称,这种方法可能不可行,即使知道名称,这种方法也非常容易出错。为了便于访问特定分区,Oracle 11g为分区SQL提供了一个新语法:

SQL> select * from sales6 partition for (to_date('15-may-2007','dd-mon-yyyy'));

SALES_ID SALES_DT

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

1 01-MAY-07

注意新子句for(值),它允许用户直接引用分区,而不必通过它们的准确名称进行显式调用。如果希望截断或删除一个分区,可以调用这个扩展的分段语法。

以此方式创建表之后,DBA_PART_TABLES 视图中的 PARTITIONING_TYPE 列会显示时间间隔

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ try catch语句_再问你一遍,你真的了解try..catch(finally)吗???

定义首先来看下 MDN 的定义:The try...catch statement marks a block of statements to try and specifies a response should an exception be thrown.try...catch语句标记要执行的语句,并指定一个当有异常抛出时候的响应简短的一句的确描述了try...ca…

lamp架构,搭建一个网络平台

首先更改主机名和 hosts 安装软件包,设置启动服务 设置数据库密码 上传discuz论坛包 将discuz注册的用户名写在mariadb数据库中 解压discuz包 unzip discuz包 -d /var/www/html cd到upload下 cp -rf * /var/www/html 进入数据库 mysql -uroot -p create database…

MyEclipse中SVN的使用方法

1、 加载插件 svn-myeclipse插件site-1.10.2.zip,解压缩后,将文件夹下的所有文件拷贝到MyEclipse安装包下的MyEclipse 8.5\dropins文件夹下,然后重新打开myeclipse,会弹出一个报错窗口,不要管它,关闭后&…

oracle数据泵导出csv文件,数据泵expdp导出遇到ORA-01555和ORA-22924问题的分析和处理...

使用数据泵导出数据库数据时,发现如下错误提示:ORA-31693: Table data object "CAMS_CORE"."BP_EXCEPTION_LOG" failed to load/unload and is being skipped due to error:ORA-02354: error in exporting/importing dataORA-01555:…

Go程序开发---Go环境配置:CentOS6.5+Go1.8标准包安装

1.Go安装 1.1Go的三种安装方式 Go有多种安装方式,可以选择自己习惯的方式进行,这里介绍三种安装方式: 1)Go源码安装 2)Go标准包安装 3)第三方工具安装 这里主要介绍下Go标准包在CentOS6.5系统中的安装方式 …

python矩阵乘法_鱼书——第一章 Python入门

one 第一章1.1 Python是什么Python是一个简单、易读、易记的编程语言,而且是开源的,可以免费地自由使用。Python可以用类似英语的语法编写程序,编译起来也不费力,因此我们可以很轻松地使用Python。特别是对首次接触编程的人士来说…

深入浅出面向对象分析与设计

深入浅出面向对象分析与设计书籍 下载位置:http://pan.baidu.com/s/1o7gmmuu转载于:https://www.cnblogs.com/wlming/p/5160140.html

[SHOI2002]百事世界杯之旅

题目:“……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字。只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯。还不赶快行动&#xff…

Oracle adviser,Oracle10g SQL tune adviser

Oracle10g SQL tune adviser简单介绍本文简单介绍下SQL Tuning Adviser的配置使用方法和一些相关知识点,如果了解SQL Tuning Adviser详细信息,参看Oracle联机文档。本文对分析结果没有详细分析。一、自动SQL Tuning简单介绍:1、优化模式&…

考托福

todo 香港的博士 转载于:https://www.cnblogs.com/dunfentiao/p/5164028.html

keepalived vip ping不通_【干货分享】OpenStack LVS负载均衡为什么不通?

背景介绍OpenStack环境Neutron 的安全组会向虚拟机默认添加 anti-spoof 的规则,将保证虚拟机只能发出/接收以本机Port为原地址或目的地址(IP、MAC)的流量,提高了云的安全性。但是LVS等需要绑定VIP的场景,默认流量是被拦截的。需要…

Docker安装ssh,supervisor等基础工具

2019独角兽企业重金招聘Python工程师标准>>> Docker安装ssh,supervisor等基础工具 需要提前下载好官方的ubuntu镜像,我这里使用的是ubuntu:14.04版本,这里安装了一些基础的工具ssh,curl,wget,vi…

中南大学 oracle试卷,数据库原理期末复习(中南大学)数据库原理、技术及应用2.ppt...

2014 春季 信息11,12 DB P,T&A-张祖平 数据库原理、技术及应用 张祖平/Zhang Zuping 电子信息工程系 School of Information Science and Engineering,Central South University , zpzhangmail.csu.edu.cn 本章小结 关系模型中的相关概念 关系(集合),性质&#…

Pandas时间差(Timedelta)

时间差(Timedelta)是时间上的差异,以不同的单位来表示。例如:日,小时,分钟,秒。它们可以是正值,也可以是负值。可以使用各种参数创建Timedelta对象,如下所示 - 字符串 通过传递字符串&#xff0…

nginx集群_windows环境下搭建简单Nginx+Tomcat集群

通俗点将,负载均衡就是因为访问流量太大,导致项目访问不流畅、甚至宕掉,所以通过一种分流的方式来缓解这种情况。一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目标实现高性能负载均衡的Tomcat集群:三、 步骤1、首先下载Nginx&a…

颜色传感器TCS230及颜色识别电路(转)

摘要 TCS230是美国TAOS公司生产的一种可编程彩色光到频率的传感器。该传感器具有分辨率高、可编程的颜色选择与输出定标、单电源供电等特点;输出为数字量,可直接与微处理器连接。文中主要介绍TCS230的原理和应用,以及色光和白平衡的知识&…

自定义对话框 提示:Unable to add window token null is not for an application

这是因为在new Dialog(context);的时候传入的context是通过getApplicationContext()获得的,这样就会报错。 把context的获得方式改为MainActivity.this就好了。 转载于:https://www.cnblogs.com/qlong8807/p/5167560.html

[51Nod 1218] 最长递增子序列 V2 (LIS)

传送门 Description 数组A包含N个整数。设S为A的子序列且S中的元素是递增的,则S为A的递增子序列。如果S的长度是所有递增子序列中最长的,则称S为A的最长递增子序列(LIS)。A的LIS可能有很多个。例如A为:1 3 2 0 4&#…

linux如何全局搜索目录,Linux 全目录全文搜索

文件内容搜索1grep -r root /home/ray/dev/media/wyquery/*通过这种方法来寻找数据库配置文件的目录其他$ grep “被查找的字符串” 文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件grep “thermcontact” */*.in从文件内容查找与正则表达式匹配…

mysql命令行导入和导出数据

首先打开命令窗口,输入命令:mysql -h localhost -u selffabu -p 连接成功后,进行下面的操作 MySQL中导出CSV格式数据的SQL语句样本如下: Sql代码select * from test_info into outfile /tmp/test.csv fields terminated by , optionally enclosed by " esc…