`
refurbish
  • 浏览: 27849 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

分区表和索引(2)

 
阅读更多
分区方法概述
Oracle提供了以下的分区方法:
 RANG 分区
 LIST 分区
 HASH分区
 组合分区

图18-2提供了分区方法的一张图形化的视图。

组合分区是一种其它分区方法的组合。Oracle提供了range-hash和range-list组合分区。图18-3提供了range-hash和range-list组合分区的图形化视图。


RANGE分区
RANGE分区把数据映射到分区上,该分区是基于你为每个分区建立的分区键值的范围基础上的。这是最常用的分区类型并通常以日期的方式使用。比如,你可能想要把销售日期按月份分区。

当使用RANGE分区时,考虑以下的规则:
 每个分区都有一个VALUES LESS THAN子句,它为分区指定了一个专用的上限。等于或高于这个表达式的分区键的任何值都被加到下一个更高的分区中。
 除了第一个外的所有分区,都有一个隐式的通过上一个分区的VALUES LESS THAN子句指定的更低边界。
 MAXVALUE表达式可以被最高的分区所定义。MAXVALUE表示了一个虚拟的无限大的值,它把包括空值在内的高于分区键的其它任何可能的值归为一类。

以下片段中给出一个典型的例子,这个语句创建了一张在SALE_DATE域上进行RANGE分区的表(SALES_RANGE)。

LIST分区
列表分区能够使你显示的控制行如何映射到分区上。你可以在每个分区的描述中为每个分区键指定一个离散值列表来完成。这与值的一个范围关联一个分区的RANGE分区和一个HASH函数控制行到分区映射的HASH分区不同。LIST分区的优势在于你可以以一种自然的方式对无序和无关的成组数据进行分组和组织。

LIST分区的细节可以通过一个例子来很好的描述。在这个例子中,假如你想要通RANGE对一张SALES表进行分区。这意味着要根据它们的地理位置把地区分组在一起。如下例所示:

通过检测一行的分区列的值是否落在了分区所描述的对应那组值上来判断该行所映射的分区。比如,被插入的行如下:
■ (10, 'Jones', 'Hawaii', 100, '05-JAN-2000') maps to partition sales_west
■ (21, 'Smith', 'Florida', 150, '15-JAN-2000') maps to partition sales_East
■ (32, 'Lee’, 'Colorado', 130, '21-JAN-2000') maps to partition sales_other

不像RANGE和HASH分区那样,对于LIST分区来说多列分区键不被支持。如果一张表通过LIST分区,那分区键只能由该表的某个单独列组成。

DEFAULT分区让你通过在一个LIST分区表上使用一个默认的分区来避免指定所有可能的值。这样所有的行不会因为匹配不到分区而产生错误。
HASH分区
哈希分区能够使即不好RANGE分区或LIST分区的数据容易分区。它通过简单的语法完成并很容易的实现。当以下情况时,使用HASH 分区比RANGE分区更好:
 事先你不知道有多少数据映射到一个给定的范围
 RANGE分区的大小差异很大或难以手工保持平衡
 RANGE分区将引起数据被不适当的聚集在一起
 比如并行DML,分区剪栽,分区范围连接这些性能特征重要时

分割,删除或整合分区这些概念将不会应用到HASH分区上。相反,HASH分区可以被增加或合并。
See Also: Oracle Database Administrator's Guide for more information
about partition tasks such as splitting partitions

上面的语句创建了一张在SALESMAN_ID域上进行分区的表。表空间的名称是ts1,ts2,ts3,ts4。使用这些语法,我们确保在指定的表空间之间使用循环的方式来创建分区。
组合分区
组合分区使用RANGE的方法分区数据,并在每个分区里,使用HASH或LIST的方法进行子分区。组合RANGE-HASH分区提供了RANGE分区的改良的可管理性和HSAH分区的数据配置,加工和并行的优点。组合RANGE-LIST分区提供了RANGE分区的可管理性和LIST分区对子分区的显示控制。

组合分区支持历史操作,比如增加新的RANGE分区,并对DML操作提供了更高度的并发性和经由子分区提供了更细粒度的数据配置。

这个语句创建了在SALES_DATE域上的RAGNE分区和在SALE_ID上的HASH子分区的一张SALES_COMPOSITE表。当你使用一张模板时,ORACLE通过连接分区的名字来指定子分区,强调一下,子分区的名称来自模板。ORACLE放置这个子分区到模板指定的表空间中。在前面的语句中,SALES_JAN2000_SP1被创建和放置在表空间ts1中,而SALES_JAN2000_SP4被创建和放置在表空间ts4中。以相同的方式,SALES_APR2000_SP1被创建和放置在表空间ts1中而SALES_APR2000_SP4被创建和放置在表空间ts4中。图18-4提供了前面例子中的图性化视图。




这个语句创建了在TXN_DATE域上的RAGNE分区和在STATE上的LIST子分区的一张bimonthly_regional_sales表。当你使用一张模板时,ORACLE通过连接分区的名字来指定子分区,强调一下,子分区的名称来自模板。ORACLE放置这个子分区到模板指定的表空间中。在前面的语句中,janfeb_2000_east被创建和放置在表空间ts1中,而mayjun_2000_east被创建和放置在表空间ts1中。以相同的方式,mayjun_2000_east被创建和放置在表空间ts1中而mayjun_2000_central被创建和放置在表空间ts4中。图18-5提供了bimonthly_regional_sales表和它的9个独立的子分区的的图性化视图。


何时分区一张表
这里是何时分区一张表的一些建议:
 大于2G的表可以被考虑进行分区
 包含历史数据的表,在该表中新数据被加入到最新的分区中。一个典型的例子是一张只保存当月更新数据而其它11个月只读的历史表。
分享到:
评论

相关推荐

    SQL Server 2005 中的分区表和索引

    ### SQL Server 2005 中的分区表和索引:深入解析 #### 分区的由来与演变 分区的概念在SQL Server的历史中占据着重要地位。从早期的SQL Server版本开始,数据库管理员就意识到,面对不断增长的数据量,传统的单一...

    MS SQL Server分区表、分区索引详解

    通过以上介绍可以看出,MS SQL Server 中的分区表和分区索引技术对于管理和提高大型数据库的性能至关重要。合理设计分区方案可以极大地提高查询效率和系统的可扩展性。通过对分区列、分区数的选择,以及对文件组的...

    oracle分区表分区索引.docx

    Oracle 分区表分区索引是 Oracle 数据库中的一种重要机制,它可以提高数据的存储和查询效率。下面将详细介绍 Oracle 分区表分区索引的类型、分类、创建方法和维护方式。 一、分区表和分区索引的概念 分区表是指将...

    Oracle 分区表 分区索引

    #### 四、创建分区表和索引 ##### 创建Range分区 ```sql CREATE TABLE sales ( sale_date DATE, amount NUMBER ) PARTITION BY RANGE (sale_date) ( PARTITION sales_q1_2020 VALUES LESS THAN (TO_DATE('2020-04...

    全面学习分区表及分区索引

    分区表和分区索引是数据库管理系统中的重要概念,它们对于数据管理和性能优化有着至关重要的作用。下面将详细探讨这两个主题。 分区表是大型数据库中常用的一种数据组织方式,旨在提高查询效率和管理大规模数据的...

    分区索引,本地索引,全局索引的区别

    在Oracle数据库中,分区索引是针对分区表的一种特殊索引类型,它可以显著提高对于大规模数据集的查询性能。根据索引是否与表的分区策略相匹配,分区索引可以分为两大类:本地索引(Local Index)和全局索引(Global ...

    Oracle分区表及分区索引

    Oracle 分区表及分区索引 Oracle 分区表是指将一个大表分割成多个小表,每个小表称为一个分区,分区表的...在选择分区表和分区索引时,需要根据实际情况选择合适的分区方式和索引类型,以提高查询性能和改善管理型。

    Oracle 分区表 分区索引 索引分区详解

    虽然存储介质和数据处理技术的发展也很快,但是仍然不能满足用户的需求,为了使用户的大量的数据在读写操作和查询中速度更快,Oracle提供了对表和索引进行分区的技术,以改善大型应用系统的性能。

    oracel 分区表索引失效的问题

    ### Oracle 分区表索引失效的问题 #### 一、全局索引与分区表的关系 **全局索引**(Global Index)是指索引覆盖整个表的所有数据,而不受限于分区边界。这种类型的索引通常用于非分区列或者跨分区查询。 **实验...

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

    "Oracle分区表和分区索引在VLDB中的研究" 本文研究了Oracle分区表和分区索引在VLDB(Very Large Databases)中的应用。分区表和分区索引是数据库管理中的关键技术之一,是VLDB中一个重要的性能提升机制。通过分析一...

    sqlserver2005 创建分区表 分区索引 注意事宜 分区索引

    分区表和分区索引是SQL Server 2005为企业级数据管理和性能优化提供的重要特性,尤其适用于处理大量数据的大型表。分区能够将数据划分为独立的、易于管理的块,这有助于提升查询性能,特别是在具有多种访问模式的...

    全面学习分区表及分区索引二

    全面学习分区表及分区索引二全面学习分区表及分区索引二

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

    以下是对Oracle分区表和分区索引的深入解析: 1. **何时使用分区**: - 当表的数据量超过2GB时,分区有助于避免32位操作系统下的文件大小限制,同时减少大规模数据的备份时间。 - 对于包含历史数据的表,如按月份...

    [三思笔记]全面学习分区表及分区索引.pdf

    分区表和分区索引是数据库管理系统中的重要概念,它们对于大型数据存储的高效管理和查询具有至关重要的作用。本文将深入探讨这两个主题,帮助你更好地理解它们的原理、用途以及实际应用。 1. 分区表(Partitioning...

    SQL Server 2005 中的分区表和索引.doc

    SQL Server 2005 中的分区表和索引 SQL Server 2005 中的分区表和索引是改善大型表和具有各种访问模式的表的可伸缩性和可管理性的重要工具。分区可以将大型表分为更小、更容易管理的部分,提供一定的帮助。创建分区...

    MSSQLServer:分区表、分区索引详解[归类].pdf

    2. **创建分区表或分区索引的步骤** - **确定分区列和分区数**:分析访问模式,选择合适的分区键,如日期、ID等。确定分区数量,使每个分区包含适当的数据量。 - **决定是否使用多个文件组**:根据操作需求和硬件...

Global site tag (gtag.js) - Google Analytics