为什么在oracle中引入hash分区?有什么好处

时间:2014-04-08 10:51:21

标签: mysql sql oracle hash partitioning

我在oracle中经历了各种关于哈希分区的网站,但我无法理解它的优点。 我开始知道即使有时使用范围分区,数据也可能分布不均匀。 所以我们要去Hash Partitioning。

所以有人请解释一下什么是哈希分区,哈希分区的必要性?

为什么我们要进行哈希分区?

为什么我们在创建散列分区时使用2个幂n表空间

当我们进行散列分区时会发生什么?

任何人都可以详细解释我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

好吧,分区为您带来了很多东西。忘记分区消除 一会儿:

  • 没有100 gig的表空间来备份,而是有100个1 gig的表空间。 (每个表空间在备份模式下花费的时间更少,减少了潜在额外的数量 重做,减少了实例在执行过程中需要执行的手动恢复的数量 备用)。与恢复相同。

  • 而不是在100 gig表上有索引,你说1 gig上有100个索引 表。你可以快速重建每一个....(和最小的开销在线) 在100 gig表上重建单个索引 - 这可能需要100倍的时间 然后每个人重建(真正的并行查询可能会减少)。

  • 您可以快速分析每个分区,而不是在100 gig上运行分析 表

  • 您可以独立于任何其他分区重新编写每个分区

  • 您可以轻松地在多个磁盘上重新分配负载,现在您可以均匀分布 将数据分成100个1 gig分区,随意移动它们。如果您手动执行此操作 - 您 会不会有时间移动这些东西。

  • (li>

    等等(您对分区执行的每个管理选项都适用于哈希 分区)。

  • 作为奖励,您不再需要以直接路径模式将此数据加载到此文件中, 将该数据存入该文件等。让软件为您完成这项工作。真正, 我们人类可以做很多事 - 但是 - 当软件可以为我做的时候......也许吧 甚至更好,我可以...它值得一试。

现在,让我们重新引入分区消除。假设您是OLTP系统。你会 选择在大多数查询中使用的PARTITION键(比如CUSTOMER_ID,ORDER_ID, 东西)。对此进行分区是非常困难的(在某些事情上几乎是不可能的 像一个ORDER_ID),但散列分区非常简单。