`
xiaoyaolong
  • 浏览: 28999 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

oracle中表分区的学习

阅读更多
1. 表分区的概念
表分区允许用户把一个表中的所有行在物理上分为几个部分,但逻辑上这些所有的行都还在同一张表中,并将这些部分存储在不同的位置,被分区的表称为分区表,分成的每一个部分称为一个分区.

2. 表分区的优点
允许用户将一个表分成多个分区
用户可以执行查询,只访问表中的特定分区
将不同的分区存储在不同的磁盘,提高访问性能和安全性
可以独立地备份和恢复每个分区

3. 表分区的方法
a) 范围分区
根据表的某一列或一组列的值范围,决定将该数据存储在哪个分区上.如可以根据序号分区,根据业务数据的生产日期分区等.
语法:
PARTITION BY  RANGE (column_name)
(
PARTITION part1 VALUE LESS THAN (range1) [TABLESPACE tbs1],
PARTITION part2 VALUE LESS THAN (range2) [TABLESPACE tbs2],
……
PARTITION partN VALUE LESS THAN (MAXVALUE) [TABLESPACE tbsN]
)
Column_name 是以此列名为基础创建范围分区,特定行的该列值称为分区健
Part….partN 是分区的名称
Range1….MAXVALUE 是分区的边界值,range1只表示小于range1之内,不包括range1
Tbs1….tbsN  是分区所在的表空间
b) 散列分区
通过在分区键值上执行一个散列函数来决定数据的物理位置,和范围分区不同的是范围分区的连续值通常存储在相同的分区中,而散列分区中,连续的分区键不必存储在相同的分区中.它是将记录平均分布到不同的分区.
语法:
PARTITION BY  HASH (column_name)
(
PARTITION part1 [TABLESPACE tbs1],
PARTITION part2 [TABLESPACE tbs2],
……
PARTITION partN [TABLESPACE tbsN]
)

PARTITION BY  HASH  (column_name)
PARTITIONS number_of_partitions [STORE IN (tablespace_list)]
Column_name 是以此列名为基础创建散列分区
number_of_partitions 是散列分区的数目
tablespace_list 是指定分区的表空间
Tbs1….tbsN  是分区所在的表空间
c) 复合分区
复合分区是范围分区和散列分区的结合.在创建复合分区时,先根据范围对数据进行分区,然后再在这些分区内创建散列子分区,它便于管理.
语法:
PARTITION BY RANGE (column_name1)
SUBPARTITION BY  HASH (column_name2)
SUBPARTITIONS number_of_partitions [STORE IN (tablespace_list)]
(
PARTITION part1 VALUE LESS THAN (range1),
PARTITION part2 VALUE LESS THAN (range2),
……
PARTITION partN VALUE LESS THAN (MAXVALUE)
)
column_name1 是以此列为基础创建范围分区
column_name2 是以此列为基础创建散列分区
number_of_partitions 是散列分区的数目
Part….partN 是分区的名称
Range1….MAXVALUE 是分区的边界值,range1只表示小于range1之内,不包括range1
d) 列表分区
允许用户明确地控制行到分区的映射,允许按自然方式对无序和不相关的数据集进行分组和组织.
语法:
PARTITION BY  LIST (column_name)
(
PARTITION part1 VALUE (values_list1),
PARTITION part2 VALUE (values_list2),
……
PARTITION partN VALUE (DEFAULT)
)
column_name 是以此列为基础创建列表分区
Part….partN 是分区的名称
Values_list 是对应分区的分区键值的列表
DEFAULT 关键字允许存储前面的分区不能存储的记录.

4. 表分区的操作
a) 添加分区: 在最后一个分区后添加新的分区
语法:
ALTER TABLE 表名 ADD PARTITION 新分区名 VALUES LESS THAN (分区范围);
b) 删除分区: 删除一个指定的分区,分区里的数据也随之删除
语法:
ALTER TABLE 分区所在的表名 DROP PARTITION 被删除的分区名;
c) 截断分区: 删除指定分区里的所有记录
语法:
ALTER TABLE分区所在的表名TRUNCATE PARTITION 被截断的分区名;
d) 合并分区: 将范围分区和复合分区的两个相邻的分区连接起来
语法:
ALTER TABLE 表名 MERGE PARTITIONS 被合并的分区1, 被合并的分区2 …INTO PARTITION 合并后的分区名;
e) 拆分分区: 将一个大的分区中的记录分到两个分区中
语法:
ALTER TABLE 表名 SPLIT PARTITION 被拆分的分区名 AT (拆分后分区范围) INTO (拆分后的分区1(存放原来分区范围内记录), 拆分后的分区2(存入指定范围的记录));

5. 在分区表中查看记录
语法:
Select * from 表名 partition 分区名
分享到:
评论

相关推荐

    oracle数据库表分区实例

    本文档提供了一个关于Oracle数据库表分区操作的具体实例,适用于学习如何对表进行分区。 #### 二、表分区的优点 1. **提高查询性能**:通过使用分区消除(partition elimination)和并行操作(parallel operations),...

    Oracle分区表培训

    Oracle分区表是数据库管理系统Oracle中的一个高级特性,用于将大表分成较小、更易管理的部分,从而提高查询性能,优化存储管理和数据维护。在大型企业级应用中,尤其是在处理大量数据时,分区表是不可或缺的技术手段...

    oracle数据库表按年分区脚本实战例子

    在Oracle数据库中,分区是一种强大的数据管理技术,它允许我们将大型表分割成更小、更易管理和查询的部分,称为分区。这种技术对于处理大量数据的企业级应用尤其有用,因为它可以提高查询性能,优化存储,并简化数据...

    深入学习oracle分区表

    ### 深入学习Oracle分区表 在Oracle数据库管理中,分区是一种重要的技术手段,能够显著提升大型数据集的查询性能。特别是在Oracle 10g版本中,支持了三种主要的分区表创建方式:范围分区(Range)、哈希分区(Hash...

    Oracle分区表和锁的应用

    1. **分区概念**:Oracle分区表是将一个大表逻辑上划分为多个较小的部分,每个部分称为一个分区。每个分区都有自己的索引和维护操作,这使得对大规模数据的操作变得高效和便捷。 2. **分区类型**: - **范围分区**...

    深入学习分区表及分区索引(详解oracle分区).docx

    Oracle分区技术是数据库管理系统中用于优化大规模数据存储和查询性能的一种高级特性。它允许将大表和索引分成较小、更易管理和操作的部分,每个部分称为一个分区。分区的主要目标是提高查询性能、简化管理任务并增强...

    ORACLE表分区例子

    Oracle数据库中的表分区是一种高效的数据管理技术,尤其适用于处理大数据量的表。它将一个大表逻辑上划分为较小、更...通过学习和实践这些示例,你可以深入理解并掌握Oracle表分区技术,从而更好地应对大数据量的挑战。

    Oracle 执行计划、表分区

    - **什么是表分区**:表分区是Oracle数据库中的一种高级特性,将大表分解为逻辑上相关的子集,每个子集称为一个分区。 - **分区类型**:包括范围分区、列表分区、哈希分区、复合分区等,每种都有其适用场景和性能...

    oracle表分区学习教案.pptx

    oracle表分区学习教案.pptx

    unix中oracle分区表导出

    本文将深入探讨Unix中Oracle分区表的导出操作,并结合SQL语言的基础知识进行阐述。 首先,Oracle分区表的主要优点在于它们能够加速大表的查询,通过将数据分布到不同的物理存储段,使得只影响部分数据的操作更为...

    oracle表分区PPT学习教案.pptx

    在学习Oracle表分区的过程中,掌握同义词的使用是十分必要的,因为它能够有效提升数据库管理和使用的便捷性。同时,理解如何创建和管理同义词,以及它们在权限控制中的作用,对于数据库管理员和开发人员来说,是优化...

    oracle分区表学习与应用

    Oracle 分区表是一种高效的数据...总结,Oracle分区表是数据库设计中的一种重要策略,它通过将大表分解为可管理的部分来优化性能和维护。了解如何创建、操作和管理这些分区对于有效地利用Oracle数据库资源至关重要。

    Oracle数据库分区管理.docx

    Oracle数据库分区管理是Oracle数据库系统中的一项高级特性,旨在优化大规模数据存储和处理的性能、可管理和可用性。自Oracle 8.0引入以来,这一技术不断演进,特别是在Oracle Database 11g 第2版中,它变得更加用户...

    福州采集项目_Oracle表分区实践.zip

    Oracle数据库中的表分区是大型企业级数据库管理的重要技术,它能显著提高...通过深入学习和实践这些文档及SQL脚本,我们可以掌握Oracle表分区的原理和技巧,有效应用到福州采集项目或其他类似的大规模数据管理场景中。

    Oracle分库分表分区学习日志.docx

    Oracle 分库分表分区学习日志 Oracle 分库分表分区是 Oracle 数据库中的一种优化技术,用于解决大型数据库中的性能瓶颈问题。通过将表分区、分库、分表,减少数据库的负担,缩短查询时间,提高系统的稳定性和负载...

    深入学习分区表及分区索引(详解oracle分区.docx

    总结来说,Oracle分区是一种强大的数据库管理工具,特别适合处理大数据量和历史数据存储的情况。通过合理选择分区策略,可以极大地提升数据处理的速度和系统的整体性能。然而,设计和实施分区策略需要深思熟虑,以...

    Oracle分区表学习及应用.doc

    Oracle分区表是数据库管理系统Oracle中的一种高级特性,用于优化大规模数据的存储和管理。通过将一个大表分成多个较小的部分,每个部分(分区)可以独立管理和操作,从而提高查询性能,减少维护成本,并且便于数据的...

Global site tag (gtag.js) - Google Analytics