㈠ 分区表技术概述
      
      ⑴ Range 分区
      
      ① 例子
         
         create table t
         (...列定义...)
         partition by range (week_num)
         (partition p1 values less than (4)tablespace data0,
           partition p2 values less than (5)tablespace data1,
           ....
          );
          
      ② 适用场景
         
         Range 分区一般比较适合按时间周期进行数据的存储
         
      ③ 优点
         
         用户知道具体数据落在哪个分区
         因此、通过分区可以有效实施各种大批量的数据管理操作
         比如、删除指定时间段的历史数据管理、对指定分区进行备份恢复或导入导出
         
      ④ 缺点
         
         ● 分区的数据可能不均匀
         ● Range分区与记录值相关、实施难度和可维护性相对较差
         
   
      
      ⑵ List分区
         
      ① 例子 
         
         create table t
         (...列定义...)
         partition by list(city)
         (partition p1 values ('北京') tablespace data0,
          partition p2 values ('上海') tablespace data1,
          ....
         );
         
      Range 和 List 的区别在于、前者是连续、而后者是离散
      因此、在优缺点及适用场景方面、大抵相去无几
      这里不赘述了
      
      
      ⑶ HASH 分区
      
      ① 例子
         
         create table t
         (...列的定义..)
         partition by hash (customer_no)
         partition 8 store in 
         (data0,data1);
         
         友情提醒哦:Oracle建议HASH分区数一般是2的幂
         
      ② 适用场景
         
         HASH分区适合于静态数据
         何谓静态数据?
         指此类数据一般永远存储在数据库中、不需要进行历史数据迁移
         例如:用户资料表、账户信息等
         而这类信息的访问大部分通过用户ID或者账号进行
         如果按这些字段进行HASH分区、并建立本地前缀分区索引、访问效率相当高哦
         
      ③ 优点
         
         ● 数据均匀分布
         ● 实施非常简单
         
      ④ 缺点
         

         用户不知道某条记录具体会落在哪个分区
         因此、HASH分区不适合大批量数据管理操作
         例如、历史数据清理、大批量数据导入导出等
         
      
      ⑷ 组合分区
      
      Oracle组合分区某种程度上讲是一种把优点集中的表现
      例如、大多数情况下、第一维按时间字段进行分区、
      这样在分区级适合于进行大批量数据管理操作
      第二维的HASH或List可进一步提高访问性能或者降低实施难度
      
      11g之前只有:Range-HASH 或 Range-List
      
   
   
   ㈡ 分区索引技术概述
      
      生产环境中、有时我们会遇到:
      已经做了分区表了、怎么性能没有提高啊?甚至更慢啊?
      其原因之一或者是没有合理甚至根本没有设计分区索引

先总体认识一下表和索引在分区上的关系:

⑴ 本地前缀分区索引
         
      假设分区表为一个交易流水表t、且按交易日期date进行Range分区
      如果欲创建date字段上的索引、我们可以:
      create index idx_t on t (date) local;
      idx_t 就叫做本地前缀索引
      所谓本地、指索引的分区方法与对应表的分区方法一样
      所谓前缀、指分区字段是索引字段的前缀
      
      优势
      ● 提高查询性能
      ● 当某个分区进行drop 或 merge后、Oracle自动对所对应的索引分区进行相同的操作、
         整个本地前缀分区索引依然有效、无须rebuild
         这样大大保证了表的可用性
    
         
         
      ⑵ 本地非前缀分区索引
      
      假设我们需要在t表的area字段建立分区索引、我们可以:
      create index idx_t_area on t (area) local;
      idx_t_area就叫做本地非前缀分区索引
      
      非前缀要按照索引扫描所有的分区、性能可能更低
      不过、它能够保证按索引访问的可用性
      
      适用场景:
      如果历史数据整理非常频繁、而且不能承受全局分区索引重建的长时间带来的索引不可用
      同时、日常交易性能尚能接受、则建议设计为本地非前缀分区索引
   
   
      
      ⑶ 全局分区索引
      
      假设我们需要在t表的area字段建立分区索引、我们可以:
      create index idx_t_g_area on t(area)
      global partition by range (area)
      (partition p1 less than ...);
      所谓全局、是指该索引的分区与表的分区无关
      10g以后、Oracle提供2种全局分区索引:
      ● Global Range Partition Index 
      ● Global HASH Partition Index 
      
      缺点:
      主要体现在数据的高可用性方面
      当DROP分区后、全局分区索引则全部INVALID、除非REBULID
      但数据量越大、重建索引的时间越长

本文转自:http://blog.csdn.net/dba_waterbin/article/details/8836104

oracle分区表和分区索引概述的更多相关文章

  1. 深入学习Oracle分区表及分区索引

    关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Has ...

  2. 【三思笔记】 全面学习Oracle分区表及分区索引

    [三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可 ...

  3. oracle 分区表和分区索引

    很复杂的样子,自己都没有看完,以备后用 http://hi.baidu.com/jsshm/item/cbfed8491d3863ee1e19bc3e ORACLE分区表.分区索引ORACLE对于分区 ...

  4. ORACLE分区表、分区索引详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt160 ORACLE分区表.分区索引ORACLE对于分区表方式其实就是将表分段 ...

  5. 转:深入学习Oracle分区表及分区索引

    转自:http://database.ctocio.com.cn/tips/286/8104286.shtml 关于分区表和分区索引(About Partitioned Tables and Inde ...

  6. 简单ORACLE分区表、分区索引

    前一段听说CSDN.COM里面很多好东西,同事建议看看合适自己也可以写一写,呵呵,今天第一次开通博客,随便写点东西,就以第一印象分区表简单写第一个吧. ORACLE对于分区表方式其实就是将表分段存储, ...

  7. Oracle 分区表中本地索引和全局索引的适用场景

    背景 分区表创建好了之后,如果需要最大化分区表的性能就需要结合索引的使用,分区表有两种索引:本地索引和全局索引.既然存在着两种的索引类型,相信存在即合理.既然存在就会有存在的原因,也就是在特定的场景中 ...

  8. Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态

    (一)问题: 最近在做Oracle数据清理,在对分区表进行数据清理时,采用的方法是drop partition,删除的过程中,没有遇到任何问题,大概过了10分钟,开发人员反馈部分分区表上的业务失败.具 ...

  9. Oracle 分区表-Range分区

    原文:http://www.tuicool.com/articles/MzeM7r 一.什么是分区表 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分 ...

随机推荐

  1. Python的网络编程[3] -> BOOTP 协议[0] -> BOOTP 的基本理论

    BOOTP协议 / BOOTP Protocol 目录 基本理论 BOOTP 与 DHCP 通信流程 数据报文格式 报文加解码实现 1. 基本理论 / Basic Theory BOOTP(Boots ...

  2. 在apache2.4.6中配置虚拟主机支持web.py

    web.py 是一个简单好用的python web框架. (http://webpy.org/) apache httpd是一款开源配置简单的web容器. (http://apache.org/) 假 ...

  3. 深入分析CVE-2016-5195 Dirty Cow

    前面一段时间,这个编号为CVE-2016-5195的漏洞刷爆了各个安全相关的博客和网站,这个漏洞可以对任意可读文件进行写操作从而导致提权,通杀了包括Android在内的绝大多数linux版本,,影响不 ...

  4. [BZOJ 1509] 逃学的小孩

    Link: BZOJ 1509 传送门 Solution: 一开始受样例影响又犯了想当然的毛病……图中的C点不一定在直径上! 3次$dfs$求出树的直径及直径的两个端点$rt1,rt2$到每个点的距离 ...

  5. 快速创建一个的指定大小的内容全为0xFF的文件

    比如需要创建一个大小为2KB,内容为全0xFF的文件 步骤只有两步: 第一步. dd if=/dev/zero of=./test.img bs=1 count=2048 第二步. 使用WinHex文 ...

  6. JAVA常见算法题(十)

    package com.xiaowu.demo; /** * 一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下……求它在第10次落地时,共经过多少米?第10次反弹多高? * * @au ...

  7. openssl/ssl.h file not found

    sample/le-proxy.c:33:10: fatal error: 'openssl/ssl.h' file not found mac下,在安装某些软件的时候提示如上错误,但是mac已经安装 ...

  8. 前端存储之indexedDB

    在前一个阶段的工作中,项目组要开发一个平台,为了做出更好的用户体验,实现快速.高质量的交互,从而更快得到用户的反馈,要求在前端把数据存储起来,之后我去研究了下现在比较流行的前端存储数据库,找到了ind ...

  9. 质量平台建设之Mock平台

    转载:http://blog.csdn.net/spark2008/article/details/51372913 基于目前系统越来越多,在项目开发过程中,减少各模块之间的开发依赖,另保证各个系统模 ...

  10. Win7 无法将快捷方式从任务栏移除怎么办

    不知道是什么修改了系统的属性了.在网上找到了这个方法解决了:一:为了解决这个问题,你可以尝试下面的方法:    把以下命令分别输入到开始-运行中    1.cmd /k reg add "H ...