我浏览了各种关于 oracle 哈希分区的网站,但我无法理解它的优势。 我开始知道,即使有时通过使用范围分区,数据也可能分布不均。 所以我们要进行哈希分区。
所以有人请解释一下什么是散列分区,散列分区的必要性?
为什么要进行哈希分区?
为什么我们在创建散列分区时使用 2 个 n 次幂的表空间
当我们进行散列分区时究竟发生了什么?
谁能详细解释一下?
提前致谢。
最佳答案
好吧,分区会为您带来很多好处。忘记分区消除 片刻:
您有 100 个 1 gig 表空间,而不是要备份 100 gig 表空间。 (每个表空间在备份模式下花费的时间更少,减少了潜在的额外数量 重做,减少在实例失败时需要执行的手动恢复量 备份)。与恢复相同。
不是在 100 gig 表上有索引,而是在 1 gig 上有 100 个索引 表。您可以快速重建每一个....(并且以最小的开销在线)。
在 100 gig 表上重建单个索引——这可能需要 100 倍的时间 然后每个单独的重建(真正的并行查询可能会减少)。您可以快速分析每个分区,而不是对 100 gig 运行分析 表。
您可以独立于任何其他分区重组每个分区
您可以轻松地在多个磁盘上重新分配负载,您现在已经均匀分布了 数据分为 100 个 1 gig 分区,随意移动它们。如果您手动执行此操作——您 移动这些东西会很费时间。
等等(您对分区所做的每个管理选项都适用于哈希 分区)。
作为奖励,您不再需要以直接路径模式将此数据加载到此文件中, 该数据到该文件等。只需让软件为您完成这项工作即可。真的, 我们人类可以做很多事情——但是——当软件可以为我做的时候……也许 比我能做的还要好……值得一试。
现在,让我们重新引入分区消除。假设你是一个 OLTP 系统。你会 选择一个在大多数查询中使用的分区键(比如 CUSTOMER_ID、ORDER_ID、 某物)。很难在上面进行分区(在某些东西上几乎不可能 像 ORDER_ID),但对散列分区来说非常微不足道。
关于mysql - 为什么在oracle中引入散列分区?有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22934780/