Oracle表分区的学习
前一阵子一直在研究着Oracle的表分区的相关知识。在数据量不断扩大的现在,分区技术是一种非常有效的提高效率的技术。
限于业务的原因,我以前每次建立分区表的时候都喜欢用日期进行分区,每天一个range分区。但是突然有一天我遇到了一个很讨厌的表,是一个对应关系表,只有产品和销售品的对应关系,这个样子的表是没有办法建立我最熟悉的range分区的,经过我查阅资料以后我发现hash分区是一个比较好的解决方案。
hash分区就是对分区字段进行hash运算后,将数据均匀的分布在每一个分区上。hash,在大学的时候数据结构课上学过,意思是杂凑,听这个名字就知道这个方法无比适合。
新学的分区语句:
CREATE TABLE TEST PARTITION BY HASH(object_id) PARTITIONS 8
AS SELECT * FROM dba_objects;
这样子的话,系统会自动的生成8个分区,每一个分区的名字也是系统指定的:
至于为什么从21开始分我还真的不理解,以后再说吧。
可以查查每一个分区中有多少数据,range分区很好查,按分区列条件查就好了,这个hash不行,我查了一下,语句如下:
select count(1) from test partition(sys_p21);
下面是这些个分区中的数据量:
效果非常好。
接下来就是看看数据的查询效率了。首先要对这个表进行一次analyze。然后autotrace一下这个执行计划,如下:
做实验要有一个对照组,下面新建一个没有分区的表,数据和test一样,这个表叫做test_2,然后插入数据,然后analyze,然后看执行计划:
效果非常非常好,对于那种乱七八糟的表这个分区方法简直碉堡了。
相关推荐
oracle表分区学习教案.pptx
oracle表分区,详细的讲解了oracle3种分区的方法和使用,例子也很多,对于想了解或学习表分区的道友,此文档必备
分享一个自己学习和实践的关于Oracle表自动按月分区知识点,已经在项目上线并且有效的方案。
oracle 数据库的表分区操作实例,适合学习操作对表进行分区。
学习记录
oracle表分区PPT学习教案.pptx
深入学习分区表及分区索引(详解oracle分区).docx
深入学习oracle分区表,oracle10g支持三种分区表创建方式,创建分区表可以一定程度上提高你数据库的访问速度,关键要看你业务上频繁查询的关键字段做为分区关键字.
Oracle数据库分区管理.docx
oracle表分区PPT课件.pptx
全面学习分区表及分区索引-Oracle.pdf
oracle 分区表学习及应用示例Create table(创建分区表) create table BILL_MONTHFEE_ZERO ( SERV_ID NUMBER(20) not null, BILLING_CYCLE_MONTH NUMBER(6) not null, DATE_TYPE NUMBER(1), ACC_NBR ...
全面学习分区表及分区索引,关于分区表和分区索引(About Partitioned Tables and Indexes)
Oracle 12c 分区技术实践手册
oracle数据库分区及索引的使用
创建分区表,增加分区表,删除一分区,将一个分区分为两个分区,-合并分区
Oracle分区表详细讲解PPT学习教案.pptx
oracle分区表,oracle分区表的讲解,很不错的资料,适合初学者来学习哦!
这份“Oracle甲骨文原厂分区表培训教程-详细讲解”是一份非常实用的资源,它能够帮助想要深入了解Oracle数据库中分区表的人们更好地掌握这一技术。该教程详细讲解了Oracle数据库中分区表的创建、维护、优化等方面,...