`
blueyanghualong
  • 浏览: 225376 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】oracle 分区概念介绍

阅读更多


 Oracle 分区功能可以提高许多应用程序的可管理性、性能与可用性。通过分区功能,可以将表、索引和索引组织表进一步细分为段,从而能够更精确地管理和访问这些数据库对象。Oracle 提供了种类繁多的分区方案以满足每种业务要求。 

  而且,因为在 SQL 语句中分区是完全透明的,所以该功能几乎可应用于任何应用程序。 

  分区功能的优势 

  分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此 外,分区还可以极大简化常见的管理任务。通过分区,数据库设计人员和管理员能够解决前沿应用程序带来的一些难题。分区是构建千兆字节数据系统或超高可用性 系统的关键工具。 

  分区功能的基本知识 

  分区功能能够将表、索引或索引组织表进一步细分为段。这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。从数据 库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理。这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但 是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。 

  表的分区是通过“分区键”来实现的,分区键指的是一些列,这些列决定了某一行所在的分区。Oracle 数据库 10g 提供了六项技术用于对表进行分区: 

  范围分区 

  每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,“2005 年 1 月”分区包含分区键值为从“2005 年 1 月 1 日”到“2005 年 1 月 31 日”的行)。 

  列表分区 

  每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的表,“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)。 

  散列分区 

  将散列算法用于分区键来确定指定行所在的分区。 

  组合范围散列分区 

  范围和散列分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用散列分区技术进一步细分。索引组织表只能进行范围分区。 

  组合范围列表分区 

  范围和列表分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用列表分区技术进一步细分。索引组织表可以按范围、列表或散列进行分区。 

  Oracle 数据库 10g 还提供了三种类型的分区索引: 

  本地索引 

  本地索引是其分区方式与其所在基础表的分区方式一模一样的索引。本地索引的每个分区仅对应于其所在基础表的一个分区。 

  全局分区索引 

  全局分区索引是使用不同于其所在表的分区键进行分区的索引,其所在表可以是分区表或非分区表。全局分区的索引可以使用范围或散列分区进行分 区。例如,某个表可以按月份进行范围分区,因此具有十二个分区,而该表上的索引则可以使用不同的分区键进行范围分区,从而具有不同的分区数量。 

  全局非分区索引 
   
 全局非分区索引基本上和非分区表的索引一样。索引结构是不分区的。 
   
  Oracle 提供了一系列丰富的技术,可用于对表、索引和索引组织表进行分区,因此可以针对任何业务环境中的任何应用程序进行最佳的分区 Oracle 还提供一套完整的 SQL 命令,用于管理分区表。其中包括添加新分区、删除分区、分拆分区以及合并分区的命令。 

  用分区功能提高可管理性 

  通过 Oracle 分区功能,可将表和索引分成更多、更小的可管理单元,从而使数据库管理员能以“化整为零,个个击破”的方式管理数据。 

  使用分区功能,维护操作可集中于表的特定部分。例如,数据库管理员可以只对表的一部分做备份,而不必对整个表做备份。对整个数据库对象的维护操作,可以在每个分区的基础上进行,从而将维护工作分解成更容易管理的小块。 

  利用分区功能提高可管理性的一个典型用法是支持数据仓库中的‘滚动视窗’加载进程。假设数据库管理员每周向表中加载新数据。可以对该表进行范 围分区,使每个分区包含一周的数据。这样加载进程只是简单地添加新的分区。添加一个分区的操作比修改整个表效率高很多,因为 DBA 不需要修改任何其他分区。 

  用分区功能提高性能 

  由于限制了所检查或操作的数据数量,同时支持并行任务执行,Oracle 分区功能实现了性能上增益。这些特性包括: 

  分区修整 

  分区修整是用分区功能提高性能的最简单最有价值的手段。分区修整常常能够将查询性能提高几个数量级。例如,假设某个应用程序包含一个存储订单 历史记录的 Orders 表,并且此表已按周分区。查询一周的订单只需访问该订单表的一个分区。如果该订单表包含两年的历史记录,这个查询只需要访问一个分区而不是一百零四个。该 查询的执行速度因为分区修整而有可能快一百倍。分区修整能与所有其他 Oracle 性能特性协作。Oracle 能将分区修整功能与任何索引技术、联接技术或并行访问方法结合使用。 

  分区智能联接 

  分区功能可以通过称为分区智能联接的技术提高多表联接的性能。当两个表要联接在一起,而且每个表都用联接键来分区时,就可以使用分区智能联 接。分区智能联接将大型联接分解成较小的发生在各个分区间的联接,从而用较少的时间完成全部联接。这就给串行和并行的执行都能带来显著的性能改善。 

  用分区功能提高可用性 
  
  分区的数据库对象具有分区独立性。该分区独立性特点可能是高可用性战略的一个重要部分,例如,如果分区表的一个分区不能用,但该表的所有其他 分区仍然保持在线并可用。那么这个应用可以继续针对该分区表执行查询和事务处理,只要不是访问不可用的分区,数据库操作仍然能够成功运行。 

  数据库管理员可以指定各分区存放在不同的表空间里,从而让管理员隔离其它表分区针对单个分区进行备份与恢复操作。还有,分区功能可以减少计划停机时间。由于分区功能改善了性能,使数据库管理员能用相对较少的时间完成大型数据库对象的维护工作。 

  未来发展方向 
  
  自从引入分区技术以来,Oracle 公司在每次推出重要版本时都会增加新的分区方法。Oracle8 引入了范围分区功能,Oracle8i 引入了散列和组合范围散列分区功能,Oracle9i 引入了列表分区功能。在最新版本 Oracle 数据库 10g 中,则增强了用于索引组织表和全局分区索引的分区策略,并且扩展了其用于所有分区维护操作的并发索引维护功能。Oracle 公司致力于不断完善分区技术,确保满足所有的业务需求。 

  结论 

  具有 Oracle 分区功能的 Oracle 数据库 10g 可以显著增强几乎任何数据库应用程序的可管理性、性能和可用性。分区功能可用于前沿应用程序,分区功能确实能够成为保障这些应用程序成功的关键技术成分。 同时,分区功能也可用于较为普通的数据库应用,来简化这些应用的管理工作,降低管理成本。

 

分享到:
评论

相关推荐

    Oracle分区表详解

    ### Oracle 分区表详解 #### 一、Oracle 分区简介 ...以上是 Oracle 分区表的基础概念及其操作的详细介绍。通过合理应用分区技术,不仅可以提高数据的可管理性,还能有效提升查询性能和系统可用性。

    ORACLE分区表的概念及操作

    总结来说,Oracle分区表是一种有效管理大规模数据的手段,通过合理分区,可以显著提升查询效率,简化维护工作,并提供更高的数据可用性。然而,使用分区也需要权衡其带来的复杂性和额外的存储需求。正确理解和应用...

    Oracle分区表用法

    【Oracle分区表用法】 Oracle分区表是一种高级的数据库管理技术,它将大型表的数据分散存储在不同的物理区域,以提升查询效率和系统的整体性能。本文将详细介绍分区表的概念、作用、优缺点,以及各种类型的分区表...

    Oracle表分区详解(优缺点)

    本文将详细介绍Oracle表分区的概念、作用、优缺点,以及各种类型的分区和操作方法。 首先,理解表空间和分区表的概念至关重要。表空间是Oracle数据库中存储数据的基本单位,它由一个或多个数据文件组成,容纳了...

    oracle分区表分区索引.docx

    下面将详细介绍 Oracle 分区表分区索引的类型、分类、创建方法和维护方式。 一、分区表和分区索引的概念 分区表是指将一个大型表分割成多个小表,每个小表称为一个分区。分区表可以根据不同的方式进行分区,例如...

    oracle表分区详解

    以上介绍了Oracle表分区的基本概念、优点、限制以及两种常见的分区类型——范围分区和列表分区,并给出了具体的创建示例。通过合理地使用表分区技术,可以有效地提高数据库系统的性能和可管理性。

    oracle索引与分区索引介绍

    在本文中,我们将详细介绍 Oracle 索引与分区索引的概念、特点、分类、创建方法、维护操作等方面的知识点。 什么是 Oracle 索引? Oracle 索引是一种数据结构,它可以快速地定位特定的数据行,以提高查询性能。...

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

    本文将深入探讨Oracle分区表和分区索引的概念、应用场景和实现方式。 1. 使用分区的场景: - 数据量超过2GB的大表,因为大文件在32位操作系统上可能存在限制,并且备份时间较长。 - 包含历史数据的表,如将新数据...

    Oracle分区表和锁的应用

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

    oracle分区表详细讲解

    描述与标签:本文将深入探讨Oracle分区表的创建、管理以及查询技巧,重点包括范围分区(RANGE)、哈希分区(HASH)和列表分区(LIST),并涵盖复合分区(COMPOUND PARTITIONING)的概念。 ### 一、Oracle分区表概述...

    导入导出 Oracle 分区表数据

    在深入了解导入导出之前,我们先简要回顾一下Oracle分区表的基本概念。分区是一种将大表分成多个小表的技术,这样可以提高查询性能并简化管理。分区表可以根据不同的键值进行划分,例如范围分区(根据数值范围)、...

    Oracle分区表和分区索引在VLDB中的研究.pdf

    本文首先介绍了分区的概念和原理,将逻辑上的一个大表拆分成多个独立的物理分区,以提高数据I/O性能。然后,讨论了Oracle分区表的类型,包括范围分区(Range)、散列分区(Hash)、列表分区(List)、组合分区...

    oracle 分区表管理

    要查看Oracle分区表的相关信息,可以使用以下视图: 1. `DBA_PART_TABLES`:显示数据库中所有分区表的信息,包括表名、分区类型、分区键等。 2. `ALL_PART_TABLES`:显示当前用户可以访问的所有分区表信息,权限...

    oracle分区ppt

    Oracle分区是数据库管理中的一个重要概念,它是一种优化大型表存储和查询性能的技术。在Oracle数据库系统中,分区允许我们将一个大的表或索引分成多个更小、更易管理的部分,这些部分被称为分区。通过这种方式,我们...

    oracle表分区实例

    以下是Oracle表分区的一些关键概念和实例: 1. **范围分区**(Range Partitioning): 范围分区是根据列值的范围进行划分,例如日期范围。在示例中,销售记录按照季度进行分区,每个季度的数据存储在不同的分区中...

    详细讲解Oracle表分区相关概念及优点

    Oracle数据库的表分区是一种高级的数据组织技术,它允许将一个大的表分成多个逻辑上关联的、独立的部分,每个部分称为一个分区。这种技术在Oracle 8i版本之后引入,主要目的是提升大型表的管理和性能。分区的核心...

    Oracle锁和表分区

    Oracle数据库系统中,锁和表分区是两...了解并熟练掌握锁和表分区的概念及其应用,对于优化Oracle数据库的性能和确保数据一致性至关重要。在实际操作中,根据业务需求合理使用这些机制,能够显著提升数据库的运行效率。

    ORACLE-分区表的用法

    表空间及分区表的概念 - **表空间**:表空间是Oracle数据库中的基本存储单元,它由一个或多个数据文件组成,用于存储数据库中的所有数据对象(如表、索引等)。在Oracle中,所有的数据对象都必须位于某个表空间内...

Global site tag (gtag.js) - Google Analytics