分区表上的索引

表可以按range,hash,list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结。

局部索引local index

1.        局部索引一定是分区索引,分区键等同于表的分区键,分区数等同于表的分区说,一句话,局部索引的分区机制和表的分区机制一样。

2.        如果局部索引的索引列以分区键开头,则称为前缀局部索引。

3.        如果局部索引的列不是以分区键开头,或者不包含分区键列,则称为非前缀索引。

4.        前缀和非前缀索引都可以支持索引分区消除,前提是查询的条件中包含索引分区键。

5.        局部索引只支持分区内的唯一性,无法支持表上的唯一性,因此如果要用局部索引去给表做唯一性约束,则约束中必须要包括分区键列。

6.        局部分区索引是对单个分区的,每个分区索引只指向一个表分区,全局索引则不然,一个分区索引能指向n个表分区,同时,一个表分区,也可能指向n个索引分区,对分区表中的某个分区做truncate或者move,shrink等,可能会影响到n个全局索引分区,正因为这点,局部分区索引具有更高的可用性。

7.        位图索引只能为局部分区索引。

8.        局部索引多应用于数据仓库环境中。

全局索引global index

1.        全局索引的分区键和分区数和表的分区键和分区数可能都不相同,表和全局索引的分区机制不一样。

2.        全局索引可以分区,也可以是不分区索引,全局索引必须是前缀索引,即全局索引的索引列必须是以索引分区键作为其前几列。

3.        全局分区索引的索引条目可能指向若干个分区,因此,对于全局分区索引,即使只

动,截断一个分区中的数据,都需要rebulid若干个分区甚

至是整个索引。

4.        全局索引多应用于oltp系统中。

5.        全局分区索引只按范围或者散列hash分区,hash分区是10g以后才支持。

6.        oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。

7.        表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引。

分区索引字典

DBA_PART_INDEXES 分区索引的概要统计信息,可以得知每个表上有哪些分区索引,分区索引的类新(local/global,)

Dba_ind_partitions每个分区索引的分区级统计信息

Dba_indexesminusdba_part_indexes,可以得到每个表上有哪些非分区索引

索引重建

Alter index idx_name rebuild partition index_partition_name [online nologging]

需要对每个分区索引做rebuild,重建的时候可以选择online(不会锁定表),或者nologging建立索引的时候不生成日志,加快速度。

Alter index rebuild idx_name [online nologging]

对非分区索引,只能整个index重建

oracle全局索引 效率,关于插入,全局索引和局部索引的情况,那种效率高相关推荐

  1. oracle12c 新增维护时间窗口,ORACLE 12C新特性-自动维护全局索引 | 信春哥,系统稳,闭眼上线不回滚!...

    今天在网上看了一篇关于12C新特性-自动维护全局索引的帖子,经测试,貌似根本不是那么回事呀.如果对分区表进行分区DDL操作,如果不加update index字句,全局索引就会失效,下面先看一下是11. ...

  2. oracle分区索引及循环插入

    表可以按range.hash.list分区,表分区后,其上的索引和普通表上的索引有所不同,oracle对于分区表上的索引分为2类,即局部索引和全局索引,下面分别对这2种索引的特点和局限性做个总结. 局 ...

  3. sql加上唯一索引后批量插入_阿里大佬总结的52条SQL语句性能优化策略,建议收藏...

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 cnblogs.com/SimpleWu/p/9929043.html 推荐:h ...

  4. Oracle数据库基本操作(二) —— 视图、序列、索引、同义词

    一.视图(Views)与 同义词 1.视图:实际上是对查询结果集的封装,视图本身不存储任何数据,所有的数据都存放在原来的表中; 在逻辑上可以把视图看作是一张表 2.作用: 封装查询语句,简化复杂的查询 ...

  5. datetime 索引_date类型和varchar类型在查询索引效率上比较

    突然有开发人员问我,使用 varchar 来存储日期,索引查询效率上的区别. oracle 中date 类型固定使用7个字节 mysql 中 date 类型使用3个字节,datetime使用8个字节( ...

  6. Oracle非重要文件恢复,redo、暂时文件、索引文件、password文件

    增量备份的应用在recovery阶段.不再restore阶段 了解数据库设置表: SQL>desc database_properties  Name                       ...

  7. oracle联合主键 索引,关于复合主键查询时使用索引研究

    当数据库创建表时,每个表只能有一个主键,但是如果想让多个列都成为主键时,就要用到复合主键. 一.主键唯一约束 我们知道当某列为主键时,Oracle会自动将此列创建唯一约束.也就是说不允许有相同的值出现 ...

  8. python列表(list)+索引切片+修改+插入+删除+range函数生成整数列表对象

    python列表(list)+索引切片+修改+插入+删除+range函数生成整数列表对象 列表(list)是什么? 列表是Python中内置有序.可变序列,列表的所有元素放在一对中括号"[] ...

  9. Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

最新文章

  1. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)
  2. 10g TNS 13541 监听错误 tnsping可以但是conn system/manager@mult1.net 报错
  3. 如何捕获window.print点击打印或取消_视频:手把手教您如何优化喷墨波形
  4. 区块链行业级应用服务商识数信科获千万元天使轮融资...
  5. 404 单页应用 报错 路由_通过 Laravel 创建一个 Vue 单页面应用(五)
  6. dll文件的c++制作dll文件的c++制作
  7. linux+listen错误,linux listen()
  8. CRC冗余校验码的介绍和实现
  9. 一口一口吃掉Struts(二)——STRUTS基本工作流程
  10. sudo rosdep init命令报错ERROR: cannot download default sources list from:....Website may be down【绝对有用】
  11. solr自带智能拼音收藏
  12. Bundle Adjustment简述
  13. 安卓的网络视频播放器(简易版)
  14. html nav均匀分布的粘性导航栏
  15. java安卓自动关机_android自动关机代码
  16. 个人成长 | 总结2018--展望2019.
  17. python中123+5.0的执行结果_123+5.0的执行结果为()_学小易找答案
  18. 博达的各种插件的下载
  19. win2003服务器设置完全版!教你如何防范黑客的入侵
  20. 一个有趣的智力题,可以看看

热门文章

  1. CentOS 7 安装 JDK
  2. 【笔记】iOS开发基础笔记二
  3. OpenCV笔记(十五)——使用Laplace算子进行图像的边缘检测
  4. Office 365身份认证管理-添加并验证联合认证域
  5. CentOS安装Nagios网络监视工具
  6. symantec backup exec 2010 基本错误总结
  7. 在 Delphi 中调用 JavaScript(二)
  8. ITPro Magazine2006年第6期发布
  9. python 传不定量参数_Python中的定量金融
  10. leetcode22. 括号生成(回溯)