- 浏览: 780300 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (386)
- Linux (36)
- Tomcat (6)
- windows (8)
- Apache (10)
- Java (25)
- jquery (7)
- Jquery 插件 (3)
- Oracle (5)
- Oracle SQL (68)
- Spring (15)
- 开发工具 (6)
- Struts (20)
- js (14)
- Project Code (2)
- Project Code Tomcat (1)
- libset (1)
- JSP (8)
- arithmetic (2)
- 浏览器 (1)
- extjs (3)
- 学习网站 (5)
- 生活情感 (0)
- 电话号码算法 (3)
- 快捷键 (1)
- 转载 (1)
- Dos命令 (2)
- services (1)
- Resources (1)
- 行业积累 (3)
- 项目积累 (3)
- Web (3)
- 文档 (1)
- JavaEE (2)
- JSF (3)
- http (3)
- JS窗口 (1)
- Html (4)
- Flex (1)
- 资讯 (2)
- 项目规范 (1)
- Struts s:property textarea中默认值用 (1)
- Quartz 2.0.2 (12)
- 1天有多少毫秒 (1)
- 专题 (1)
- intellij idea 10 CD-KEY (1)
- restlet (4)
- Mail (1)
- Excel (3)
- Menu (1)
- Big Data技术综述 (1)
- Quart 1 (1)
- nosql (1)
- linux远程 (1)
- jdk (5)
- wind7 (1)
- 虚拟人 (0)
- 虚拟机 (1)
- 终端 (1)
- Ubuntu (16)
- Myeclipse (2)
- Wmware (1)
- eclipse (2)
- css (2)
- csv (1)
- 开源 (1)
- plsql (2)
- cassandra (4)
- maven (1)
- hadoop (2)
- mysql (1)
- spring security (1)
- tools (1)
- jdbc (2)
- exception (2)
- 硬盘数据备份 (1)
- dwr (1)
- svn (1)
- PowerDesigner15使用时的十五个问题 (1)
- tomcat 项目发部路径 (1)
- js 暂停执行 (1)
- jquery jqgrid 格式化数据显示 (1)
- js 代码模板 (1)
- strutss2 直接跳转到jsp页面 (1)
- servlet (1)
- jdbc spring (1)
- js学习网站 (1)
- 自学考试 (2)
- hibernate (2)
- eos (1)
- c (4)
- 黑马 (2)
- 大数据 (2)
- 实战云大数据案例分享 (0)
- Spark (2)
- Flink (1)
最新评论
-
coosummer:
推荐使用http://buttoncssgenerator.c ...
jquery button 漂亮 -
thinktothings:
Array_06 写道你好,我是一名刚毕业学生,我以后就是做J ...
如何转型架构师 -
thinktothings:
软考,考有职业资格证,有系统的知识体系学习
如何转型架构师 -
Array_06:
你好,我是一名刚毕业学生,我以后就是做Java的架构师,那请问 ...
如何转型架构师 -
beykery:
你这也太复杂了。。。。jsf2不应该是这样的。。。。
JSF2.0的一个简单Demo
http://blog.csdn.net/sanmiyangguang/article/details/6280270
oracle表分区(一) .
建立分区的好处:改善表的查询性能,使表更容易管理,便于备份和恢复,提高数据安全性。
注意:分区表不能有long或者raw long 数据类型。
一、分类
1、range(范围)分区
2、hash(哈希)分区
3、list(列表)分区
4、组合分区range-hash range-list。
二、分区选择条件
1、range分区
应用范围比较广泛的表分区方式,以列的值的范围来作为分区划分条件的,将记录放到列所在的range分区中,因此在创建的时候需要指定基于的列,以及分区的范围值,如果有些记录暂时无法预测范围,可以创建maxvalue分区,所有不在指定范围的记录都会到这个maxvalue分区中,并且支持多列作为依赖列。每个分区中的数据量不均匀
2、hash分区
应用于那些无法有效划分范围的表,这样对提高性能有所帮助,hash是将数据平均分配到你指定的几个分区中,列所在的分区时依据分区列hash值自动分配的,不能控制那条值在那个分区,支持多个依赖列。
3、list分区
需要指定列的值,单个分区值可以有多个值,其分区中的值必须明确指定,不能想range中指定范围,可以确定那个值在那个分区,但是只能有一个依赖列,分区时必须确定分区列可能存在的值,一旦插入的列值不在分区范围内,则插入就会失败,因此在使用list分区时,建议创建一个default分区,用于存储那些不在指定范围内的记录,类似range的maxvalue分区。
4、组合分区
如果某表桉某列进行分区,仍然较大,或者是一些其他的需求,还可以通过分区内在建立子分区即组合分区。oracle10g中只有range-hash、range-list,根分区只能使用range分区,则分区可以是hash或者list分区。11g在组合分区功能上有所增强,range-range,list-range,list-list,list-hash,hash不能做根分区是因为数据分配是平均分配,某条记录在那个分区是不可知的。
三、分区创建
首先要介绍几个个数据字典表:user_part_tables、user_tab_partitions、user_tab_subpartitions
user_part_tables:记录分区表的信息
user_tab_partitions:记录表的分区信息
user_tab_subpartitions:查询表的子分区信息
1、range分区创建
创建一个标准的range分区表:
create table t_partition_range(id number,name varchar2(50))
paritition by range(id)(
partition t_range_p1 values less than (10) tablespace tbspace01,
partition t_range_p2 values less than (20) tablespace tbspace02,
partition t_range_p3 values less than (30) tablespace tbspace03,
partition t_range_pmax values less than (maxvalue) tablespace tbspace04
);
注:id:为分区依赖列(可以有多个,用逗号分隔)
t_range_p1 :分区的名称
values less than:后跟分区范围值(如果依赖列有多个,范围对应值也应是多个,中间以逗号分隔);
tbspace03:分区的存储属性,例如所在表空间等属性(可为空),默认继承基表所在表空间的属性。
可以查看分别查看两张数据字典表有关表t_partition_range的信息。
2、hash分区创建
第一种方式:
create table t_partition_hash(id number,name varchar2(50))
partition by hash(id)(
partition t_hash_p1 tablespace tbspace01,
partition t_hash_p1 tablespace tbspace02,
partition t_hash_p1 tablespace tbspace03
);
第二种方式:
create table t_partition_hash2(id number,name varchar2(50))
partition by hash(id)
partitions 3 store in (tbspace01,tbspace02,tbspace03);
注:第二种方式说明可以直接指定分区数量和可供使用的表空间,表空间的数量不一定要等于分区的数量
3、list分区创建
create table t_partition_list (id number,name varchar2(50))
partition by list(id)(
partition t_list_p1 values (1,2,3,4,5,6,7,8,9) tablespace tbspart01,
partition t_list_p2 values (10,11,12,13,14,15,16,17,18,19) tablespace tbspart02,
partition t_list_p3 values (20,21,22,23,24,25,26,27,28,29) tablespace tbspart03,
partition t_list_pd values (default) tablespace tbspart04);
注:list分区的依赖列只能有一个,values中的值即为id中的值。
4、range-hash 组合分区创建
为所有分区创建4个hash子分区
create table t_partition_rh (id number,name varchar2(50))
partition by range(id) subpartition by hash(name)
subpartitions 4 store in (tbspart01, tbspart02, tbspart03,tbspart04)(
partition t_r_p1 values less than (10) tablespace tbspart01,
partition t_r_p2 values less than (20) tablespace tbspart02,
partition t_r_p3 values less than (30) tablespace tbspart03,
partition t_r_pd values less than (maxvalue) tablespace tbspart04);
对某一个分区创建4个哈市子分区
create table t_partition_rh (id number,name varchar2(50))
partition by range(id) subpartition by hash(name)(
partition t_r_p1 values less than (10) tablespace tbspart01,
partition t_r_p2 values less than (20) tablespace tbspart02,
partition t_r_p3 values less than (30) tablespace tbspart03
(subpartition t_r_p3_h1 tablespace tbspart01,
subpartition t_r_p3_h2 tablespace tbspart02,
subpartition t_r_p3_h3 tablespace tbspart03),
partition t_r_pd values less than (maxvalue) tablespace tbspart04);
给各个分区创建不同的子分区:
create table t_partition_rh (id number,name varchar2(50))
partition by range(id) subpartition by hash(name)(
partition t_r_p1 values less than (10) tablespace tbspart01,
partition t_r_p2 values less than (20) tablespace tbspart02
(subpartition t_r_p2_h1 tablespace tbspart01,
subpartition t_r_p2_h2 tablespace tbspart02),
partition t_r_p3 values less than (30) tablespace tbspart03
subpartitions 3 store in (tbspart01,tbspart02,tbspart03),
partition t_r_pd values less than (maxvalue) tablespace tbspart04
(subpartition t_r_p3_h1 tablespace tbspart01,
subpartition t_r_p3_h2 tablespace tbspart02,
subpartition t_r_p3_h3 tablespace tbspart03)
);
分区模板应用:
在指定子分区依赖列以后,指定子分区的存储模板,各个分区即会按照子分区模式创建子分区
create table t_partition_rh (id number,name varchar2(50))
partition by range(id) subpartition by hash(name)
subpartition template (
subpartition h1 tablespace tbspart01,
subpartition h2 tablespace tbspart02,
subpartition h3 tablespace tbspart03,
subpartition h4 tablespace tbspart04)(
partition t_r_p1 values less than (10) tablespace tbspart01,
partition t_r_p2 values less than (20) tablespace tbspart02,
partition t_r_p3 values less than (30) tablespace tbspart03,
partition t_r_pd values less than (maxvalue) tablespace tbspart04);
5、range-list组合分区创建
其创建方式和range-hash极其相似,只是子分区是list分区,同样也可以使用分区模板
create table t_partition_rl (id number,name varchar2(50))
partition by range(id) subpartition by list(name)
subpartition template (
subpartition l1 values ('aa') tablespace tbspart01,
subpartition l2 values ('bb') tablespace tbspart02,
subpartition l3 values ('cc') tablespace tbspart03,
subpartition l4 values ('dd') tablespace tbspart04)(
partition t_r_p1 values less than (10) tablespace tbspart01,
partition t_r_p2 values less than (20) tablespace tbspart02,
partition t_r_p3 values less than (30) tablespace tbspart03,
partition t_r_pd values less than (maxvalue) tablespace tbspart04);
四、分区公共准则
1、如果选择的分区不能确保各个分区内记录量的基本平均,则这种分区方式有可能是不恰当的
比如对于range 分区,假设分了10 个分区,而其中一个分区中的记录数占总记录数的90%,其它9 个分区只占总记录数的10%,则这个分区方式就起不到数据平衡的作用。当然,如果你的目的并不是为了平衡,只是为了区分数据,ok,对于这种情况,我想说的是,你务必要意识到存在这个问题。
2、对于分区的表或索引,其所涉及的所有分区,其块的大小必须一致。
发表评论
-
Oracle数据导入导出imp/exp
2013-03-13 23:02 1009linux 用用户 system/system将用户ccn ... -
linux oracle启动
2013-02-21 11:49 1008交谈中请勿轻信汇款、中奖信息、陌生电话,勿使用外挂软件。 ... -
oracle 查看某个表空间下有多少表
2013-02-18 08:12 1772oracle 查看某个表空间下有多少表 selec ... -
六分钟学会创建Oracle表空间的步骤
2013-02-18 07:10 901六分钟学会创建Oracle表空间的步骤 原帖:ht ... -
查询结果拼成一条字符串
2013-01-09 16:30 962查询结果拼成一条字符串 select repla ... -
oracle sql 特殊字符处理
2012-12-20 15:48 974oracle sql 特殊字符处理 select ... -
oracle 得到表的字段和备注
2012-12-13 15:58 1010--oracle 得到表的字段和备注 ... -
oracle blob
2012-11-30 20:03 992一.将oracle字符串 blob转换为字符串(存的也是字符串 ... -
java.sql.SQLException: ORA-00257: archiver error. Connect internal only, until f
2012-11-11 11:06 1905http://blog.csdn.net/panys/ ... -
linux,oracle启动,关闭
2012-08-31 15:26 1028数据库连不上去了,客户端连上去报 ora- 12560:TNS ... -
oracle 以数据行传递参数
2012-07-31 09:53 1201begin for cur_ct_swapco ... -
oracle创建表空间
2012-07-30 14:01 1021oracle创建表空间 windows s ... -
Connection refused: connect
2012-07-17 14:47 22100orcl.16.50.110 是安装数据库时设的全局数据库名 ... -
oracle sql 循环一天的数居
2012-06-29 10:35 968-- Created on 2012-6-29 by LIU ... -
oracle sql 分组求最大值后,要显示其它列
2012-06-12 15:42 1912select t_a.a,t_a.b,max(t_a.c ... -
sql 换行符
2012-06-01 09:25 1135换行:chr(13)||chr(10) ... -
想查询一个表的结果集,又想统计其中某列符某行重复的次数
2012-06-01 09:22 1048想查询一个表的结果集,又想统计其中某列符某行重复的次数 ... -
oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的位数
2012-05-16 11:59 30891oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的 ... -
查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
2012-04-26 08:51 1420--查看表的数量 Select * From user ... -
教你快速掌握Oracle中"Kill"进程的方法 .
2012-04-24 09:24 1711教你快速掌握Oracle中"Kill" ...
相关推荐
1. **表分区的基本概念**:Oracle表分区是将一个大表分解成多个逻辑上关联的小表,每个小表称为一个分区。这些分区可以独立存储和管理,降低了维护复杂性,提高了查询速度。Oracle支持多种分区策略,如范围分区、...
Oracle数据库表分区技术是数据库管理中的一项高级功能,它允许将大表划分为更小、更易管理的部分,称为分区。在Oracle中,表空间是由一个或多个数据文件组成的集合,是数据库中用于存储数据的对象。 表分区对于大型...
三、Oracle分区表的创建示例 本篇文档通过一个留言版应用的案例来说明分区表的创建和使用。案例中提到了创建独立表空间、备份旧数据、创建分区表、导入数据和分区表扩容的步骤。 1. 创建独立的表空间:这是创建分区...
Oracle 分区表分区索引是 Oracle 数据库中的一种重要机制,它可以提高数据的存储和查询效率。下面将详细介绍 Oracle 分区表分区索引的类型、分类、创建方法和维护方式。 一、分区表和分区索引的概念 分区表是指将...
Oracle表分区管理是Oracle数据库系统中一种高级的数据组织策略,用于优化大型数据库的性能和管理效率。随着数据量的增长,传统的单表管理方式会面临访问效率低、I/O竞争激烈等问题。Oracle从8i版本开始引入表分区...
一、Oracle分区简介 Oracle分区的核心理念是“分而治之”,它将大表和索引分成多个小的逻辑单元,称为分区。这种技术有助于减少管理开销,提高查询性能,同时增强系统的并行处理能力。当某一分区发生故障时,不会...
Oracle数据库分区管理是Oracle数据库系统中的一项高级特性,旨在优化大规模数据存储和处理的性能、可管理和可用性。自Oracle 8.0引入以来,这一技术不断演进,特别是在Oracle Database 11g 第2版中,它变得更加用户...
"Oracle自动一年建立表分区.zip"文件显然包含了用于自动创建按时间(一年)分区的Oracle脚本。这样的脚本对于处理大量历史数据的企业尤其有用,因为它可以帮助将大表分解成更小、更易管理和查询的部分。 表分区的...
Oracle表分区技术是一种高效管理大型数据库表的策略,它通过将大表划分为较小的、独立的分区,提高数据管理的便捷性和性能。这一技术自Oracle8开始引入,旨在应对数据量急剧增长带来的挑战。 首先,分区技术的核心...
Oracle 表分区是一种高效的数据管理策略,用于处理大数据量的表,以提升查询性能和数据库的可维护性。本文将详细介绍Oracle表分区的概念、作用、优缺点,以及各种类型的分区和操作方法。 首先,理解表空间和分区表...
Oracle数据库中的表分区是一种高级组织技术,它通过将表的大数据集划分为较小的、更易于管理的部分(即分区),从而提高查询性能和可管理性。表分区可以按照不同的策略进行划分,如范围分区、列表分区等。 #### 二...
Oracle 数据库分区表的工作原理是依据分区主键而创建的多个独立的表,对应用而言它只是一个表,而在底层是由几个独立的分区组成的,每个分区具有自己独立的段标识和段的高水位线图。这样可以实现数 据分布到多个...
Oracle表分区是指将一个大型表分割成多个小的独立表,每个小表称为一个分区。通过分区,可以将大型表分割成多个小的独立表,从而提高查询效率和数据管理效率。Oracle表分区可以按照不同的方式进行分区,例如按照日期...
oracle按时间自动分区后,将自分区的系统名根据时间重命名。如:SYS_P20000重命名为P20190101。 输入两个参数表名 +类型 1:日 2:月 3:年 默认日期 把后面注释的执行语句释放,测试打印的时候注释了,上传的时候忘...
Oracle分区技术是数据库管理系统中用于优化大规模数据存储和查询性能的一种高级特性。它允许将大表和索引分成较小、更易管理和操作的部分,每个部分称为一个分区。分区的主要目标是提高查询性能、简化管理任务并增强...
Oracle数据库中的表分区是数据库管理的一种高级技术,它允许我们将大型表分解成更小、更易管理和查询的部分,从而提高数据存储和检索的效率。在本文中,我们将深入探讨Oracle表分区的各个方面,包括其重要性、类型、...
-- 更多分区... ); ``` - **规则说明**: 1. 每个分区都必须有`VALUES LESS THAN`子句,用于指定不包括在该分区内的上限值。 2. 除首个分区外,每个分区都有隐式下限值,即前一个分区的上限值。 3. 最高的...
以下是对Oracle分区技术的详细解释: **什么是分区?** 在Oracle数据库中,分区是将大数据对象(如表或索引)划分为多个独立的、较小的部分,每个部分称为一个分区。这些分区可以分布在不同的表空间中,并且可以...
Oracle分区表中的Hash分区是一种基于哈希算法的分区策略,适用于处理无法清晰定义分区范围的大型数据表。这种分区方式通过计算分区键的哈希值来决定数据存储在哪个分区,以此达到数据分散和负载均衡的目的。Hash分区...