【oracle】分区表:range分区,list分区,hash分区



************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************
--(1)分区表包含多个分区,每个分区都是在一个独立的segment上面,可以存放不同的表空间;

--(1.1)官方推荐超过2G的表,需要分区表;

--(1.2)表中含有历史数据,新的数据添加到最新的分区;例如11个月的数据只是读,最新1个月的数据为修改;需要用分区表;

--(1.3)oracle 10g支持1024K-1个分区;

--(2)分区表的优点

--2.1 可以对单独的分区进行备份和恢复

--2.2 分散IO

--(3)oracle 10g支持的分区

--范围分区range

--哈希分区hash

--列表分区list

--范围哈希复合分区range-hash

--范围列表复合分区range-list

--(4)range分区

create table rangetable(id number(9),time date) partition by range(time)

(

partition p1 values less than (to_date(‘2010-2-1‘,‘yyyy-mm-dd‘) ),

partition p2 values less than (to_date(‘2010-3-1‘,‘yyyy-mm-dd‘) ),

partition p3 values less than (to_date(‘2010-4-1‘,‘yyyy-mm-dd‘) ),

partition p4 values less than(maxvalue)

);

--查看分区表的基本信息

select * from user_part_tables;

select table_name,partitioning_type,partition_count

from user_part_tables where table_name=‘RANGETABLE‘;

--查看表的分区信息:分区名称,默认的extents个数

select * from user_tab_partitions where table_name=‘RANGETABLE‘;

select table_name,high_value,partition_name from user_tab_partitions

--拆分分区表:拆分maxvale/default分区表;

alter table rangetable split partition p4 at(to_date(‘2010-5-1‘,‘yyyy-mm-dd‘))

into (partition p5,partition p6)

alter table rangetable split partition p6 at(to_date(‘2010-7-1‘,‘yyyy-mm-dd‘))

into (partition p6,partition p7)

--插入数据

insert into rangetable values(1,to_date(‘2010-01-01‘,‘yyyy-mm-dd‘));

insert into rangetable values(1,to_date(‘2010-02-01‘,‘yyyy-mm-dd‘));

insert into rangetable values(3,to_date(‘2010-03-01‘,‘yyyy-mm-dd‘));

select * from rangetable;

--统计segments

select partition_name,count(*) from user_extents where segment_name=‘RANGETABLE‘ group by partition_name;

--(5)list分区

--list分区必须制定列值,列植必须明确;要创建default分区来存储不明确的值;

create table listtable

(

id number(10) not null,

areacode varchar2(20)

)

partition by list(areacode)

(

partition list_025 values(‘025‘),

partition list_035 values(‘035‘),

partition list_045 values(‘045‘),

partition list_055 values(‘055‘),

partition list_other values (default)

)

--插入数据

insert into listtable values(1,‘025‘);

insert into listtable values(2,‘035‘);

insert into listtable values(3,‘045‘);

insert into listtable values(4,‘055‘);

insert into listtable values(5,‘075‘);

--查看分区信息

select * from user_part_tables;

select * from listtable;

select * from user_tab_partitions where table_name=‘LISTTABLE‘;

--统计segments

select partition_name,count(*) from user_extents where segment_name=‘LISTTABLE‘ group by partition_name;

--(6)hash分区

create table hashtable

(

id number(9),

areacode varchar2(10)

)

partition by hash(areacode)

partitions 5;

--插入数据

insert into hashtable values(1,‘025‘);

insert into hashtable values(2,‘035‘);

insert into hashtable values(3,‘045‘);

insert into hashtable values(4,‘055‘);

insert into hashtable values(5,‘075‘);

commit;

--统计segments

select partition_name,count(*) from user_extents where segment_name=‘HASHTABLE‘ group by partition_name;

select * from dba_extents  where segment_name=‘HASHTABLE‘;

************************************************************************
  ****原文:blog.csdn.net/clark_xu 徐长亮的专栏
************************************************************************
时间: 2024-10-07 21:39:12

【oracle】分区表:range分区,list分区,hash分区的相关文章

Mysql 分区介绍(六) —— HASH分区

hash分区是使用主键去确保数据均匀分布在一个预先确定数字的分区上. 在range 或list分区中. 你必须显式的指定给出的数据写入哪个分区或设置一个列值去保存; 在hash分区中. Mysql已经为你准备的. 你只需要指定一个列的值或表达式基于列值去hash和分区的数字在哪个分区表中. CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFA

oracle分区表和分区索引概述

㈠ 分区表技术概述            ⑴ Range 分区            ① 例子                  create table t         (...列定义...)         partition by range (week_num)         (partition p1 values less than (4)tablespace data0,           partition p2 values less than (5)tablespac

深入学习Oracle分区表及分区索引

关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Hash(哈希)分区 •       List(列表)分区 •       以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区

【三思笔记】 全面学习Oracle分区表及分区索引

[三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可以分成几类: v  Range(范围)分区 v  Hash(哈希)分区 v  List(列表)分区 v  以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定 compress 属性),只不过分区依赖列不能是

转:深入学习Oracle分区表及分区索引

转自:http://database.ctocio.com.cn/tips/286/8104286.shtml 关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: Range(范围)分区 Hash(哈希)分区 List(列表)分区 以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列

hash 分区

上次参加oracle的培训,老师讲到了利用10g智能分区匹配可以极大地提高两个分区表的连接速度,对于这两个分区的要求就是必须采用相同的分区策略,最简单的实现就是两个分区表都采用HASH分区,并且HASH分区的分区数也必须是相同的.老师还提到对于HASH分区来说,分区的数量最好是2的幂,这样的效率会高一些.[@[email protected]] 至于为什么分区的数量最好是2的幂这个问题,我一直也没有思考,就当个经验记下来了.前两天看一位大牛的BLOG也提到HASH分区的事情,仔细阅读之后才明白.

oracle 分区表

一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中.查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询. When to Partition a Table什么时候需要分区表,官网的2个建议如下: (1)Tabl

Oracle 分区表的新增、修改、删除、合并。普通表转分区表方法

一. 分区表理论知识 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明.Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中.查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询. When to Partition a Table什么时候需要分区表,官网的2个建议如下: Tables g

【转载】oracle 分区表详解

一.分区表的概述:     Oracle的表分区功能通过改善可管理性.性能和可用性,从而为各式应用程序带来了极大的好处.通常,分区可以使某些查询以及维护操作的性能大大提高.此外,分区还可以极大简化常见的管理任务,分区是构建千兆字节数据系统或超高可用性系统的关键工具.     分区功能能够将表.索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区.每个分区有自己的名称,还可以选择自己的存储特性.从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使

ORACLE分区表梳理系列(一)- 分区表概述、分类、使用方法及注意事项

版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内容用于商业用途,将保留追究其法律责任的权利.如果有问题,请以邮箱方式联系作者([email protected]). 前言 本文着重阐述分区表的概念.优势,以及常用分区表的使用方法及使用过程中的注意事项. 对于分区表的日常维护方法,如:索引的维护.分区的合并等,将在后续文章中再详细介绍. 本文涉及的