当人们想到数据库引擎中的并行处理时,他们会立即想到通过让多个处理器处理单个查询来缩短查询响应时间。 人们往往会忽略的是,并行处理也可以加快索引处理的速度,从而提高数据库服务器的整体性能。 使用IBM DB2 for i,可以使用CPU进行索引处理。 特别是,当基础数据更改时,创建索引以及维护索引时,DB2 for i可以使用多个处理器。 并行创建和维护索引的能力适用于传统的二进制基数和编码的矢量索引结构。
DB2 for i并行处理仅在购买,安装和激活了DB2对称多处理(DB2 SMP)许可功能的IBM i系统上可用,如本文的“ 启用并行处理”部分中所述。
并行索引创建
DB2 for i可以使用并行处理来创建SQL索引和键控逻辑文件(即CRTLF命令)。 并行索引处理是通过将基础表逻辑上分成多个数据段来完成的。 然后,每个过程都会为分配的表段构建索引键值。 然后,将每个并行过程执行的工作合并在一起,以完成最终的索引结构。
图1显示,使用额外的CPU资源可以大大减少创建索引所花费的时间。 在非常大的数据库环境中或在恢复场景中,重新创建索引需要尽快发生,此功能变得非常重要。
图1.启用并行性后,索引构建时间大大缩短了
并行索引维护
索引维护是更改索引键以反映对关联数据库行的更改(通常是由insert
, update
或delete
)的任务。 如果更改了客户的订单号或向数据库添加了客户的新订单,则必须更新所有包含订单号列作为关键字段的索引。 索引的维护(或更新)是与添加或更改订单相关的总交易时间的因素。
如果多个索引受数据库行更改的影响,则这些索引的维护将默认顺序进行,默认情况下一次维护一次。 首先,订单号更改会传播到IndexA。 完成对IndexA的更改后,订单号将传播到IndexB,依此类推。
并行索引维护涉及同时维护多个索引。