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

分区表和索引(3)

 
阅读更多
分区索引概述
与分区表一样,分区索引提高了可管理性,可用性,性能和可扩展性。它要么被独立地分区(全局索引)或自动地连接到某张表的分区方法(本地索引)。总之,你可以为OLTP应用程序使用全局索引和为数据仓库或决策应用程序使用本地索引。此外,无论何时尽可能使用本地索引,因为它更容易管理。当决定使用什么类型的分区索引时,你可以按顺序考虑以下的指引:
1. 如果表的分区列是索引键的一个子集,使用本地分区索引。如果是这种情况,你可以结束了。如果不是这种情况,继续指引2。
2. 如果索引是唯一的,使用一个全局索引。如果是这种情况,你可以结束了。如果不是这种情况,继续指引3。
3. 如果你的优先级是可管理性,使用一个本地索引。如果是这种情况,你可以结束了。如果不是这种情况,继续指引4。
4. 如果应用程序是一个OLTP并且用户需要快速响应时间,使用一个全局索引。如果是一个DSS应用程序并且用户对于吞吐量更感兴趣,使用本地索引。

See Also: Oracle Database Data Warehousing Guide and Oracle
Database Administrator's Guide for more information about partitioned
indexes and how to decide which type to use

本地分区索引
本地分区索引比其它类型的分区索引更容易管理。它们也提供了更好的可用性并且在DSS环境中很常见。这个原因是均衡:每个分区的本地索引精确的关联到该表的一个分区。这能够使Oracle自动的让索引分区与表分区保持同步,并使得表-索引对独立。任何让一个分区数据无效或不可用的动作只会影响独立的一个分区。

当有在表上进行分区或子分区维护操作时,本地分区索引支持更多的可用性。一种称为本地非前缀类型的索引对于历史数据库来说是非常有用的。在这种类型的索引中,分区是不会在索引列的左前缀上的。

See Also: Oracle Database Data Warehousing Guide more information
about prefixed indexes

你不能显示的增加一个分区到一个本地索引中。相反的,只有当你增加一个分区到一张潜在的表里时,新的分区才会被增加到本地索引中。同样地,你不能从一个本地索引里显示的删除一个分区。相反的,只有当你从潜在的表里删除一个分区时,本地分区索引才被删除。

一个本地索引可以是唯一的。可是,对于一个本地为了唯一,表的分区键必须是索引键的列的一部分。对于OLTP环境来说唯一本地索引是非常有用的。
Figure 18–6 offers a graphical view of local partitioned indexes.

全局分区索引
Oracle提供了两种类型的全局分区索引:Range分区和Hash分区。
全局Range分区索引
全局Range分区索引在分区的程度上是很方便的并且分区键独立于表分区方法。它们通常被用在OLTP环境中并提供了对任何个别的记录的有效访问。

一个全局索引的最高分区必须有一个分区边界,边界值是MAXVALUE。这能确保在潜在表中的所有行能在索引中被表示。全局前缀索引可以是唯一的,也可以是非唯一的。

你不能增加一个分区到一个全局索引中,因为最高分区通常是具有一个边界为maxvalue的分区。如果你想要增加一个新的最高分区,使用ALTER INDEX SPLIT PARTITION 语句。如果一个全局索引的分区是空的,你可以显示的通过ALTER INDEX DROP PARTITION语句删除它。如果一个全局索引分区包含数据,删除掉分区将导致下一个最高分区被标记为不可用。你不能在一个全局索引中删除掉最高分区。
全局Hash分区索引
全局Hash分区索引在索引单向增长时通过传播竞争来提高性能。换而言之,大量的索引插入只发生在某个索引的右边缘。
全局分区索引的维护
默认情况下,在堆组织表上的分区上的以下操作标记全局索引不可用:
ADD (HASH)
COALESCE (HASH)
DROP
EXCHANGE
MERGE
MOVE
SPLIT
TRUNCATE
通过为这些操作在SQL语句后附加UPDATE INDEXES子句来维护索引。维护全局索引有以下两个优点:
 贯穿这些操作,索引仍然可用和在线。今后没有其它应用程序受这个操作影响。
 这些操作后索引不需要被重建。

比如:DROP TABLE DROP PARTITION P1 UPDATE INDEX;
===============================================================================
注意:只有堆组织表支持这些特征。

See Also: Oracle Database SQL Reference for more information about
the UPDATE INDEXES clause

图18-7提供了一张全局分区索引的图形化视图:


全局非分区索引
全局非分区索引表现的跟一张非分区索引一样。它们通常被用在OLTP环境中并对任何单独记录提供了有效的访问:
图18-8提供了一张全局非分区索引的图形化视图:

关于在分区表上创建索引的各种信息
你可以在分区表上创建位图索引,使用位图索引必须是本地索引这个约束,它们不能是全局索引。

全局索引可以是唯一的,如果分区键是索引键的一部分时,本地索引只能是唯一的。
在OLTP应用程序中使用分区索引
以下是对于OLTP应用程序的一些指引:

 全局索引和唯一,本地索引比非唯一本地索引提供了更好的性能,因为它们最小化了索引分区探测的数量。
 当在表上的分区和子分区上进行维护操作时,本地索引提供了更好的可用性。
 全局Hash分区索引在索引单向增长时通过传播竞争来提高性能。换而言之,大量的索引插入只发生在某个索引的右边缘。
在数据仓库和决策支持应用程序中使用分区索引
以下是对数据仓库和决策支持应用程序中的一些指引:
 本地索引是首先,因为它们在数据加载和分区维护操作期间更容易管理。
 本地索引可以提高性能,因为许多索引分区可以通过在索引键上的范围(RANGE)查询来并行扫描。
组合分区上的分区索引
以下是在组合分区上使用分区索引时要记住的一些点:
 子分区索引通常是本地的且默认情况下与表的子分区存储在一起。
 要么在索引级要么在索引子分区级指定表空间。
分享到:
评论

相关推荐

    SQL Server 2005 中的分区表和索引

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

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

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

    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分区表分区索引.docx

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

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

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

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

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

    Oracle分区表及分区索引

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

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

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

    oracel 分区表索引失效的问题

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

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

    3. Oracle 分区表有多种类型,包括范围分区、散列分区、列表分区、组合分区、Interval分区和引用分区。 4. 分区表和分区索引可以提高查询速度和数据库维护性能。 5. 分区表和分区索引可以应用于 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

    【MSSQL Server 分区表和分区索引详解】 在SQL Server中,分区表和分区索引是针对大型数据表的管理和性能优化策略。当面对数据量庞大的表时,使用分区能够提高数据处理效率,增强系统的可管理性。本文将详细讲解...

Global site tag (gtag.js) - Google Analytics