深入学习Oracle 分区表及分区索引 关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2 而言,基本上可以分成几类: • Range(范 围 )分区 • Hash(哈 希 )分区 • List(列 表)分区 • 以及组 合 分区:Range-Hash,Range-List。 对于表而言(常 规 意 义 上的 堆 组 织 表),上述 分区形 式 都 可以应 用 (甚 至 可以对某 个 分区指定 compress 属 性 ),只 不 过 分区依 赖 列 不 能 是 lob,long 之 类数 据 类型 ,每 个 表的 分区或 子 分区数 的 总 数 不 能 超 过 1023 个 。 对于索引组 织 表,只 能 够 支 持 普 通 分区方 式 ,不 支 持 组 合 分区,常 规 表的 限 制 对于索引组 织 表同 样 有 效 ,除 此 之 外 呢 ,还 有 一 些 其 实 的 限 制 ,比 如 要 求 索引组 织 表的 分区依 赖 列 必须 是 主 键 才 可以等 。 注 :本篇 所 有 示 例 仅 针 对常 规 表,即 堆 组 织 表! 对于索引,需 要 区分创 建 的 是 全 局 索引,或 本地 索引: l 全 局 索引(global index):即 可以分区,也 可以不 分区。 即 可以建 range 分区,也 可以建hash 分区,即 可建 于分区表,又 可创 建 于非 分区表上,就 是 说 ,全 局 索引是 完 全 独 立 的 ,因 此 它 也 需 要 我 们更多的 维护操作。 l 本地 索引(local index):其 分区形 式 与表的 分区完 全 相同 ,依 赖 列 相同 ,存储属 性 也 相同 。 对于本地 索引,其 索引分区的 维护自动进行,就 是 说 你add/drop/split/truncate 表的 分区时,本地 索引会自动维护其 索引分区。 Oracle 建 议如 果单个 表超 过 2G 就 最好对其 进行分区,对于大表创 建 分区的 好处是 显而易见的 ,这里不 多论述 why,而将重点放在when 以及how。 ORACLE 对于分区表方 式 其 实 就 是 将表分段存储,一 般普 通 表格是 一 个 段存 储,而分区表会分成多个 段,所 以查找数 据 过 程都 是 先定 位根据 查询条件定 位分区范 围 ,即 数 据 在那个分区或 那几个 内部,然后在分区内部去查找数 据 ,一 个 分区一 般保证四十多万条数 据 就 比较正常 了,但是 分区表并非 乱建 立...