Oracle表分区
自从oracle8i 开始可以把一个表分割为多个小的部分,这样可以对oracle的性能优化带来很大的好处~
例如:改善表的查询性能,更加容易管理表数据,备份和恢复操作更方便
在oracle 中分区表 分为好几种的(范围分区,散列分区,子分区,列表分区,索引分区)下面我们来慢慢介绍
现在我们来建立一个[范围分区]
create table RangeTable(
id int primary key,
name varchar(20),
grade int
)
partition by rang(grade)
(
partition part1 values less then(50) tablespace Part1_tb,
partition part2 values less then(MAXVALUE) tablespace Part2_tb
);
如果grade的值小于50的话 就把记录放到名为part1的分区当中,part1分区将被存储在Part1_tb表空间中
其他的就放在part2中 MAXVALUE是oracle的关键字 表示最大值
[散列分区]
create table HashTable(
id int primary key,
name varchar(20),
grade int
)
/*有两种方式,1就是指定分区数目和所使用的表空间,2指定以命名的分区*/
partition by hash(grade)
partitions 10 -- 指定分区的数目
store in(Part1_tb,Part2_tb,Part3_tb) --如果指定的分区数目比表空间多,分区会以循环方式分配到表空间
/*------------------------------------*/
partition by rang(grade)--这种方式就是 指定以命名的分区
(
partition part1 tablespace Part1_tb,
partition part2 tablespace Part2_tb
);
[子分区]即是分区的分区
create table ChildTable(
id int primary key,
name varchar(20),
grade int
)
partition by rang(grade)
subpartition by hash(grade)
partitions 5
(
partition part1 values less then(30) tablespace Part1_tb,
partition part2 values less then(60) tablespace Part2_tb,
partition part3 values less then(MAXVALUE) tablespace Part3_tb
);
[列表分区]告诉oracle所有可能的值
create table ListTable(
id int primary key,
name varchar(20),
area varchar(10)
)
partition by list(area)
(
partition part1 values('guangdong','beijing') tablespace Part1_tb,
partition part2 values('shanghai','nanjing') tablespace Part2_tb
);
[索引分区]索引也可以按照和表进行分区时使用的相同的值范围来分区
create index IndexTable_index
on IndexTable(name)
local
(
partition part1 tablespace Part1_tb,
partition part2 tablespace Part2_tb
)
--local 告诉oracle表 IndexTable的每一个分区建立一个独立的索引
create index IndexTable_index
on IndexTable(name)
global;
--global为全局索引 全局索引可以包含多个分区的值 局部索引比全局索引容易管理,而全局索引比较快
注意:不能为散列分区 或者 子分区创建全局索引
查询某一个表分区
select * from table partition(part1);
分享到:
相关推荐
Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能
oracle 数据库的表分区操作实例,适合学习操作对表进行分区。
Oracle数据库分区表操作方法Oracle数据库分区表操作方法
oracle数据库表按年分区脚本实战例子,特点:上手性好,易二次开发和调试。
数据库表分区介绍:数据量比较大时候,可采用索引和表分区技术来加速检索速度!可以借鉴下的!
Oracle数据库分区管理.docx
"如何使用Oracle数据库分区表" Oracle 数据库分区表是关系型数据库中的一种重要技术,旨在解决海量数据处理问题。在当前互聯網技术和电子商业发展的时代,大数据已经成为企业面临的主要挑战之一。如何处理好海量...
为了简化数据库大表的管理,例如在数据仓库中一般都是TB级的数量级.ORACLE8以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限膨胀的大表,组大表在物理一级的可管理性.将大表分割成较...
Oracle 表分区技术详解: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作.
Oracle数据库中分区表的操作方法.doc
Oracle_数据库分区技术经验分享 很不错 讲的比较深入 很高端的
oracle数据库优化-分区共.pdforacle数据库优化-分区共.pdforacle数据库优化-分区共.pdforacle数据库优化-分区共.pdforacle数据库优化-分区共.pdf
(Oracle管理)多做知识的积累 详解ORACLE数据库的分区表.docx
Oracle8i引入了分区表和对象表,Oracle8i引入了临时表,使表的功能更强大。视图是一个或多个表中数据的逻辑表达式。表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。用CREATE TABLE语句建立表...
分享一个自己学习和实践的关于Oracle表自动按月分区知识点,已经在项目上线并且有效的方案。
"Oracle数据库分区优化技术研究与应用.pdf" Oracle数据库分区优化技术是指通过将大型数据库对象分解为多个小的、易于管理的实体,以提高数据库性能、可用性和维护性的一种技术。该技术可以解决大型数据库对象管理...
Oracle数据库组合分区的一种实现方法.pdf
DB2和orcale数据库表分区相关操作和数据库的备份与恢复
在大型的企业应用或企业级的数据库应用中,要处理的数据量通常可以达到几十到几百 GB,有的甚至...在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用。