- 浏览: 768063 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 978linux 用用户 system/system将用户ccn ... -
linux oracle启动
2013-02-21 11:49 970交谈中请勿轻信汇款、中奖信息、陌生电话,勿使用外挂软件。 ... -
oracle 查看某个表空间下有多少表
2013-02-18 08:12 1744oracle 查看某个表空间下有多少表 selec ... -
六分钟学会创建Oracle表空间的步骤
2013-02-18 07:10 873六分钟学会创建Oracle表空间的步骤 原帖:ht ... -
查询结果拼成一条字符串
2013-01-09 16:30 930查询结果拼成一条字符串 select repla ... -
oracle sql 特殊字符处理
2012-12-20 15:48 944oracle sql 特殊字符处理 select ... -
oracle 得到表的字段和备注
2012-12-13 15:58 979--oracle 得到表的字段和备注 ... -
oracle blob
2012-11-30 20:03 962一.将oracle字符串 blob转换为字符串(存的也是字符串 ... -
java.sql.SQLException: ORA-00257: archiver error. Connect internal only, until f
2012-11-11 11:06 1842http://blog.csdn.net/panys/ ... -
linux,oracle启动,关闭
2012-08-31 15:26 1002数据库连不上去了,客户端连上去报 ora- 12560:TNS ... -
oracle 以数据行传递参数
2012-07-31 09:53 1170begin for cur_ct_swapco ... -
oracle创建表空间
2012-07-30 14:01 990oracle创建表空间 windows s ... -
Connection refused: connect
2012-07-17 14:47 22068orcl.16.50.110 是安装数据库时设的全局数据库名 ... -
oracle sql 循环一天的数居
2012-06-29 10:35 936-- Created on 2012-6-29 by LIU ... -
oracle sql 分组求最大值后,要显示其它列
2012-06-12 15:42 1870select t_a.a,t_a.b,max(t_a.c ... -
sql 换行符
2012-06-01 09:25 1116换行:chr(13)||chr(10) ... -
想查询一个表的结果集,又想统计其中某列符某行重复的次数
2012-06-01 09:22 1021想查询一个表的结果集,又想统计其中某列符某行重复的次数 ... -
oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的位数
2012-05-16 11:59 30859oracle获得当前时间的,精确到毫秒 可以指定精确豪秒的 ... -
查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
2012-04-26 08:51 1384--查看表的数量 Select * From user ... -
教你快速掌握Oracle中"Kill"进程的方法 .
2012-04-24 09:24 1675教你快速掌握Oracle中"Kill" ...
相关推荐
Oracle表分区管理.pdf
oracle表分区实例.doc oracle表分区实例.doc oracle表分区实例.doc
1、oracle表分区详解;2、表分区的具体作用;3、表分区的优缺点;4、表分区的几种类型及操作方法;5、有关表分区的一些维护性操作
Oracle数据库分区管理.docx
oracle表分区
如何使用Oracle数据库分区表.pdf
对于oracle分区表分区索引的详细说明。 详细描述了分区表的类型,分区索引的类型 分类 。 删除或truncate 表分区时,什么样的情况索引会失效 需要重建 ,什么时候 对索引 没影响 。
oracle创建分区表 在ORACLE里如果遇到特别大的表,可以使用分区的表来改变其应用程序的性能。 以system身份登陆数据库,查看 v$option视图,如果其中Partition为TRUE,则支持分区 功能;否则不支持。Partition有...
Oracle表分区技术总结.doc
oracle表分区.[归类].pdf
Oracle的分区技术.pptx
oracle表分区详解
深入学习分区表及分区索引(详解oracle分区).docx
Oracle 表分区技术详解: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作.
oracle按时间自动分区后,将自分区的系统名根据时间重命名。如:SYS_P20000重命名为P20190101。 输入两个参数表名 +类型 1:日 2:月 3:年 默认日期 把后面注释的执行语句释放,测试打印的时候注释了,上传的时候忘...
Oracle分区表.pdf
oracle数据库优化-分区共.pdforacle数据库优化-分区共.pdforacle数据库优化-分区共.pdforacle数据库优化-分区共.pdforacle数据库优化-分区共.pdf
oracle表分区PPT课件.pptx
oracle表分区学习教案.pptx