oracle 11g 组合分区,Oracle数据库

数据库分区是每种数据库都需具备的关键功能之一。几乎所有的Oracle数据库都使用分区功能来提高查询的性能,Oracle 11g分区功能可以简化数据库的日常管理维护工作,大大减轻了DBA(数据库设计和管理工程师)的工作负担。

分区是探索数据仓库技术选项之一,几乎所有的Oracle数据库都使用了分区技术来改善查询的性能,并减轻日常维护的复杂性,从11G开始,提供了更多的分区选项,这些选项大大地减轻了DBA的负担。

本文应该对工作在一个数据仓库环境中的DBA和开发人员有帮助,Oracle 11g提供的新特性应该增强了分区选项,并为分区使用和维护提供更大的灵活性。

分区表首先是在Oracle 8i中引入的,Oracle是第一个支持物理分区的RDBMS厂商,SQL Server(2000)和DB2都只提供了逻辑分区(使用UNION ALL视图),SQL Server 2005还不能直接支持物理分区(通过分区函数实现的),Oracle中的分区选项因其对性能的改善非常明显、可管理性、应用程序可用性以及更重要的DSS应用程序而在用户团体中压倒性地被用户广泛接受,这个特性受到广泛赞赏导致通过后来的发行频繁地得到增强。

下面的表列出了每个版本中包括的分区特性(高水平):

分区特性

8.0.5

引入范围分区

8i

引入哈希和混合范围-哈希分区

9i

引入列表分区,混合范围-列表分区

10g

引入范围,列表和索引组织表的哈希分区,还引入了其他混合分区类型

11g

引入分区扩展:

l         间隔分区

l         REF分区

l         基于列的虚拟分区

l         分区顾问

分区类型

让我们简单地讨论一下上面提到的每个特性:

范围分区:数据是基于某个分区键范围的值分散的,例如,如果我们选择一个数据列作为分区键,分区“JAN-2007”将包括所有在01-JAN-2007和31-JAN-2007之间的分区键值行(假设分区范围是从月份的第一天到该月的最后一天)。

哈希分区:应用到分区键的哈希算法决定了给出行的分区,它提供了I/O均衡,但是不能用于范围或不等式查询。

列表分区:数据分布是通过分区键的一串值定义的,这对不连续的列表非常有用,如:区域、状态等。

混合分区:有两个数据分布办法用于创建混合分区,表首先通过第一个数据分布办法进行初始化分区,然后每个分区再通过第二个办法分成子分区,下面列出了可用的混合分区类型:

范围-哈希,范围-列表,范围-范围,列表-范围,列表-列表,列表-哈希。

在10g中索引组织表(表的索引和数据存储在一起)支持通过范围、列表或哈希进行分区,然而,混合分区在索引组织表上不受支持。

间隔分区:在11g中才引入,间隔分区是对范围分区的扩展,为等距范围分区提供了自动化,分区创建为元数据,只有分区开始部分是不变的,附加的段是当数据抵达时才分配的,附加分区和本地索引是自动创建的。

SQL>CREATE TABLE SALES_PART

(TIME_ID NUMBER,

REGION_ID NUMBER,

ORDER_ID NUMBER,

ORDER_DATE DATE,

SALES_QTY NUMBER(10,2),

SALES_AMOUNT NUMBER(12,2)

)

PARTITION BY RANGE (ORDER_DATE)

INTERVAL (NUMTOYMINTERVAL(1,'month')

(PARTITION p_first VALUES LESS THAN ('01-JAN-2006');

numtoyminterval函数转换一个数字为间隔一年至一个月的文字(年或月),间隔分区表可以有传统的范围和自动间隔部分,范围分区表可以通过在ALTER TABLE命令中使用SET INTERVAL选项被扩展为间隔分区表。

REF分区:这个分区方案假设关联表能从相同的分区策略中受益,子表通过PK-FK(主键-外键)关系继承主表的策略,它不需要分区键存储在子表中,通过PARTITION BY REFERENCE关键字指定,子表继承主表的分区策略。

基于列的虚拟分区:在Oracle以前的版本中,只有分区键物理存在于表中才能对表进行分区,在11g中引入一个新的特性“虚拟列”移除了这个限制,允许分区键通过使用一个或多个表的列的表达式进行定义,虚拟列仅作为元数据存储。如:向表ACCOUNTS添加一个虚拟列:

SQL>CREATE TABLE ACCOUNTS

(acc_no number(10) not null,

acc_name varchar2(50) not null,

acc_loc varchar2(5),

acc_branch number(2) generated always as

(to_number(substr(to_char(acc_no),1,2)));

使用虚拟列作为分区键:

SQL>CREATE TABLE accounts

(acc_no number(10) not null,

acc_name varchar2(50) not null,

acc_loc varchar2(5),

acc_branch number(2) generated always as

(to_number(substr(to_char(acc_no),1,2)))

partition by list (acc_branch);

分区顾问

Oracle 11g也提供了分区顾问,它支持生成分区建议,与10g中为物理视图、物理视图日志和索引提供建议类似,实际上,分区顾问是Oracle 11g中SQL访问顾问的一部分,这个顾问帮助生成建议,它将预先收集实施分区后的性能,它还生成创建高效分区的脚本,可以手动通过SQL*plus或通过企业管理器队列提交给Oracle。

上面就是小编对Oracle 11g分区方法的总结,需要在线学习可以登录课课家官网查看视频。

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

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

相关文章

实现购物车的原理

购物车的功能包括以下几项: n 把商品添加到购物车,即订购 n 删除购物车中已定购的商品 n 修改购物车中某一本图书的订购数量 n 清空购物车 n 显示购物车中商品清单及数量、价格 实现购物车的关键在于服务器识别…

C++中virtual关键字的用法

关于virtual关键字的用法总结如下,有错误或者总结不到位的情况请能帮本人指出,非常感谢! Virtual是C OO机制中很重要的一个关键字。只要是学过C的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数。 基类的函数调用如果有virtual则…

很不错的Windows 控件 Developer Express Inc.NET

这个是我用 Developer Express Inc.NET 做的小东东!很漂亮哦~!文件太大了没办法上传,喜欢的可以去 http://www.dnc.com.cn 下载 还有注册机哦! 转载于:https://www.cnblogs.com/xnet/archive/2005/12/21/301768.html

人生中的第一个博客

希望通过这几个月的学习,能够把Python掌握,最起码能够找到一份好的工作,通过自己的努力让代码改变世界!转载于:https://www.cnblogs.com/nandadao/p/9904378.html

助你成为嵌入式高手的100多个软硬件开源项目

大家好,转发一个朋友总结的资料文章,内容如下大家好,我是老温,今天给大家推荐一个嵌入式开源项目汇总的仓库。学习初期最难找的就是找学习资料了,本贴精心汇总了一些嵌入式相关资源,包括但不限于编程语言、…

oracle联合主键怎么找,Oracle数据库联合主键

1、定义:主键:在Oracle中,主键指能唯一标识一条记录的单个数据表列或联合的数据表列(联合主键|复合主键)。主键用到的数据 表列数据不能包含空值。而且,一张表只能包含一个主键。2、作用:数据表的联…

笔记--相册

function moveleft(id)//图片左移 { var d document.getElementById(piclist); a eval(70); d.scrollLeft a; } function moveright()//图片右移 { var d document.getElementById(piclist); a eval(68); d.scrollLeft - a; } function showBigPic(src)…

工作杂感

其实今天算是平淡无奇的一天但不平淡的只是今天又跟老板谈话了年末嘛,谈话总是正常的自然而然谈到年终奖,加工资,待遇等等事先听到风声,知道涨幅分几等当知道自己的涨幅,已经算是公司数一数二的,已不能去反…

C++/C中mutalbe与volatile的详解

1、 mutalbe的中文意思是“可变的,易变的”,跟constant(既C中的const)是反义词。在C中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量(mutable只能由于修饰类的非静态数据成员),将永远处于…

没有mmu可以跑Linux吗?

为什么需要mmu?我们知道应用程序是不能随意访问内存的,如果让应用程序直接访问物理内存,那么计算机是很危险的,计算机内存的所有内容将被完全暴露出来。所以出现了mmu,mmu是内存管理单元,应用程序访问的是虚拟内存&am…

pC机OracLe库磁盘坏如何恢复,电脑硬盘坏了数据能恢复吗(6步教你自己在家轻松恢复数据)...

电脑硬盘毁坏如何恢复数据有过硬盘损坏经历的用户都知道,硬盘损坏其最严重的结果就是导致其中存储的文件难以读取,包括无法复制,无法移动。通常来说,具体的表现形式是复制文件或者传输文件的时候,耗费很长的时间都无法…

又重新让aspspider.net支持中文PDF输出了

经过一番努力,再次看到中文PDF的输出;aspspider.net经过这次更新后,不知道什么原因,使用BaseFont.AddToResourceSearch(MapPath(".\itextsharpasian\") "iTextAsian-1.0.dll");的方法就是不能把iTextAsian-1.…

My new iMac 27

iMac 27 12GB Memory. 用来贴补家用,有需要开发项目的可以与我联系 asp.net、组件开发 ,java,javascript,xml/xslt,objective-c 什么都行. 目前上架产品包括:少儿有声阅读系列《单刀会》《白蛇传》《空城记》,新闻阅读有 “辽宁日报” “辽宁…

url编码函数encodeURI和encodeURIComponent

var url "http://www.wrox.com/illegal value.html#start";encodeURIComponent(url) //"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.html%23start" encodeURI(url) //"http://www.wrox.com/illegal%20value.html#start" 记住2种特殊字符&…

C语言面试题大汇总之华为面试题

该面试题大全可以很好地提高C/C程序员的技术综合实力 1、局部变量能否和全局变量重名?  答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时&#xff0…

从没想过会有一个这样的机会|大疆招聘

我是昨晚才知道,年前有一个读者一直在找工作最近准备入职大疆,之前我也有给他推荐了机会,不过都没有合适的。昨晚突然给我发消息说拿到了大疆的岗位,待遇和职位都是自己喜欢的。我的微信好友有好几个大疆的同学,刚好昨…

oracle不同session共享变量,SpringMVC使用oracle配置session共享

简述由于开发是单机项目,但是到了配置负载均衡的集群中就发生了问题,使用账号登录后又跳回主页面。我分析了原因是负载均衡配置的跳转是每次访问都会切换服务,所以在A机器登录后,再次访问B机器找不到有登录状态的session&#xff…

Google Earth 和MS Virtual Earth:虚拟地球简介

自从Goal在98年提出数字地球(Digital Earth)之后,全球掀起了数字地球热,而随着Goal的竞选总统的失利和当时科学技术和硬件水平的限制,数字地球一直处于慢慢发展状态。其中它涉及到很多学科包括地理对象的描述、存储、建…

转些别人收集的歌

2019独角兽企业重金招聘Python工程师标准>>> 【Anaesthesia】Maximilian Hecker强烈推荐 【Summer Days In Bloom】Maximilian Hecker力推! 【end of May】Keren Ann 【gotta have you】The Weepies调调很特别,我用它做过背景音乐。 …

Linux社区关于链表的bug讨论我们要看一下

最近在Linux社区看到一个关于内核链表的讨论原文讨论链接:https://lwn.net/SubscriberLink/885941/01fdc39df2ecc25f/先用例子说明怎么使用内核链表list.h/* SPDX-License-Identifier: GPL-2.0 */ #ifndef LIST_H #define LIST_H/** Copied from include/linux/...*…