Indexing 为什么并行合并在11g中更快

Indexing 为什么并行合并在11g中更快,indexing,oracle11g,merge,Indexing,Oracle11g,Merge,我有一个约25M条记录的表和一个更新表中一个字段近40K行的过程 该字段包含在某些索引中。问题是: 使用>对索引非常慢,因此我必须删除索引,合理地快速执行更新,然后花费近5分钟重新创建索引 使用并行合并,我被告知它会更快,但我想知道为什么它会更快?即使有索引,我也要再次删除索引 merge语句背后的哲学是什么,它使它更快 非常感谢,更新2500万行中的40000行不需要5分钟。如果任何接近合理的硬件需要5秒钟,我会担心。如果您有一个update语句,我想问题可能是查询计划不好,或者是触发器或是硬

我有一个约25M条记录的表和一个更新表中一个字段近40K行的过程

该字段包含在某些索引中。问题是:

使用>对索引非常慢,因此我必须删除索引,合理地快速执行更新,然后花费近5分钟重新创建索引

使用并行合并,我被告知它会更快,但我想知道为什么它会更快?即使有索引,我也要再次删除索引

merge语句背后的哲学是什么,它使它更快


非常感谢,

更新2500万行中的40000行不需要5分钟。如果任何接近合理的硬件需要5秒钟,我会担心。如果您有一个
update
语句,我想问题可能是查询计划不好,或者是触发器或是硬件不好,另一方面,处理40000个单独的请求可能需要一些时间。如果还没有这样做的话,将更新捆绑到一个查询中将是一个巨大的加速。当索引存在时,几乎需要5分钟,但是如果我删除包含更新字段的索引,则几乎需要20秒。顺便说一句,update语句非常直截了当且基于集合。硬件也是一个不错的选择。更新2500万行中的40000行应该不需要5分钟。如果任何接近合理的硬件需要5秒钟,我会担心。如果您有一个
update
语句,我想问题可能是查询计划不好,或者是触发器或是硬件不好,另一方面,处理40000个单独的请求可能需要一些时间。如果还没有这样做的话,将更新捆绑到一个查询中将是一个巨大的加速。当索引存在时,几乎需要5分钟,但是如果我删除包含更新字段的索引,则几乎需要20秒。顺便说一句,update语句非常直截了当且基于集合。硬件也是一个不错的选择。