【基础知识】Oracle分区表和索引解读

 2024-03-04 04:05:08  阅读 0

请输入标题bcdef

提供分区技术是为了支持VLDB(Very Large),那么分区表有什么优点呢? 分区索引分为本地索引和全局索引。 这两个指标是什么意思呢? 什么时候需要建立全局索引,什么时候需要建立本地索引? 哪些操作会导致分区表索引频繁失效问题,如何解决和避免? 让我们带着这些问题,来探究一下分区表及其索引的奥秘吧!

请输入标题

1、分区表

提供分区技术支持VLDB(Very Large)。 关于什么时候需要分区表,官网有以下两个建议:

1. 大于2GB。

2. data,其中新数据被添加到. A是一张表,只有月份的数据,其他11个都是只读的。

分区表如图1所示,通过判断分区列,将不同分区列的记录放入不同的分区。 每个分区都是一个独立的段(),可以存放在不同的表空间中。 分区对于应用程序是完全透明的。 查询时可以通过查询表访问各个分区中的数据,也可以在查询时直接指定分区进行查询。

图1 分区表示意图

分区类型有很多种,比如范围分区(range)、哈希分区(hash)、列表分区(list)、范围-哈希复合分区(range-hash)、范围-列表复合分区(range-list)等。

分区的优点是:

1、由于数据分散到各个分区,减少了数据损坏的可能性;

2.可以备份和恢复单个分区;

3、分区可以映射到不同的物理磁盘,分散IO;

4. 提高可管理性、可用性和性能。

2、分区索引

2.1 全局索引

全局索引在整个表上创建索引。 他们可以依赖普通表或分区表。 全局索引也可以分区。 索引分区机制不依赖于基础表的分区机制。 您可以创建自己的分区。 索引的分区键可以选择与表的分区键不一致。 每个索引分区的键值可以指向任何表分区。 。 对于全局分区索引,索引键前缀必须包含索引的分区键,即“全局前缀索引”。 全局分区索引基于“前缀索引”来保证主键的唯一性。 即使不包含表的分区键,也能保证唯一性。 分区索引。

oracle创建索引表空间_oracle 创建表时创建索引_创建索引oracle

图2 全局分区索引示意图

oracle 创建表时创建索引_oracle创建索引表空间_创建索引oracle

图3 全局非分区索引示意图

2.2 本地索引

本地索引不能在普通表上创建,只能依赖分区表来创建,并且它们依赖分区表的分区键来创建索引,即依赖底层表的分区机制来创建索引。创建索引。 与表分区一起建立一一对应的索引分区。 每个索引分区中的条目仅指向一个表分区,彼此独立,并且自动维护。 如果表分区键定义在索引的第一列上,则称为“前缀索引”。 如果索引不使用表分区键作为其索引字段的第一列,或者不包含分区键,则称为“非前缀索引”。 前缀索引可以根据分区键准确判断数据所在的分区。 但是,由于非前缀分区索引不包含分区键,因此它会执行全分区扫描,因为它无法确定分区中是否有所需的数据。 因此,一般不建议使用“无前缀索引”。

oracle 创建表时创建索引_创建索引oracle_oracle创建索引表空间

图4 本地索引图标

2.3 全局索引和局部索引

大多数OLAP系统使用本地索引,而OLTP系统更多地使用全局索引。 下面从三个角度对指标的优缺点进行比较:

1.可用性:本地索引具有更好的可用性。 一个索引分区出现问题不会影响其他索引分区,而全局索引则很可能成为故障点。 一旦出现问题,整个索引将不可用。

2、可维护性:本地索引更容易维护,也更灵活。 对分区的操作只会影响该分区的索引,只需要重建和维护一个索引分区。 很多情况下需要重建全局索引。

3、性能:如果满足查询条件的索引键值只涉及单个分区索引,那么使用分区的本地索引可能比使用全局索引效率更高,因为搜索范围更小。 如果满足查询条件的索引键值跨越多个分区索引,由于搜索分区索引需要来回切换多个分区的数据块,因此使用全局索引可能比使用分区索引更高效。

一般来说,当需要频繁删除表分区、数据更新频繁时,为了便于维护,应避免使用全局索引。 如果跨分区查询较多,最好使用全局索引。

三、分区操作对索引的影响及其解决方案

在DBA维护管理中,索引失效是一个常见的问题。 导致全局索引失败的数据库操作包括:

添加 | (哈希)

| (哈希)

下降 |

|

合并|

移动|

分裂|

|

导致本地索引失败的数据库操作包括:

合并

移动

分裂

注意:如果操作空分区,对全局索引和本地索引都没有影响(除此之外)。

可以通过查询、视图来检查索引是否有效,例如: , from where =''。

对于索引失败问题,提供了两种方法:

1)

2)、本地索引不能整体重建,只能重建各个分区。

这两种方法各有优缺点,在不同的生产环境下方法也不同。 需要根据实际生产情况平衡操作ddl的时间和重建索引的时间来决定使用哪种方法。 一般来说,当数据量较大时,重建索引的代价会很大,严重影响查询性能。 这种情况下,往往会采用分区后直接建立索引的方法。

另外,该操作是一个非常特殊的操作,添加参数仍然会导致本地索引失败,所以需要本地索引。

结论

本文简单了解分区表及其索引的知识,梳理不同索引的优缺点,以及导致索引失败的数据库操作和解决方案。 当需要使用和测试分区表时,应重点关注相关知识点,避免出现生产问题。 问题。

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码