WEB开发网
开发学院数据库DB2 在 WebSphere Federation Server V9.1 中异步执行... 阅读

在 WebSphere Federation Server V9.1 中异步执行联邦查询

 2009-12-24 00:00:00 来源:WEB开发网   
核心提示: 这种串行化与联邦无关,实际上,在 WebSphere Federation Server V9.1 中异步执行联邦查询(2),这是由 DB2 UNION 操作符的单线程性质导致的,该操作符每次只激活它的一个分支并取完该分支的结果集, SHIP2 花费 5 分钟,SHIP3 花费 7 分钟,而不管

这种串行化与联邦无关。实际上,这是由 DB2 UNION 操作符的单线程性质导致的,该操作符每次只激活它的一个分支并取完该分支的结果集,而不管这些分支是否涉及远程数据源。含多个输入的其他 DB2 操作符(例如连接)也是单线程的。在非联邦环境中,这种串行化通常没有问题,因为当异步地执行更低级的操作(例如从磁盘取数据到缓冲池)时,本地资源(CPU、I/O 等)通常可以得到充分的利用。

联邦查询的本质意味着查询中至少涉及到一个外部数据源,这种环境中的串行化意味着失去一个通过重叠处理不同远程数据源来提高性能的机会。在上面的例子中,可以通过同时执行 UNION 的所有三条分支来提高联邦查询的性能。

通过并发地执行远程数据源上的查询,联邦服务器可以更好地利用可用的资源,从而达到减少联邦查询执行时间的目的。WFS V9.1 拥有异步执行远程查询的能力。该特性目前只有在支持 Data Partitioning Feature (DPF) 的系统上才可用。

还记得吗,每个 SHIP 操作符都意味着在执行计划中有一个地方要将一个查询或请求转发到一个远程数据源。在这个例子中,假设每个被 “转发” 的查询在远程数据源上都需要进行复杂的、比较耗时的计算。如果不使用异步方式,那么联邦服务器每次只能执行 UNION 的一个分支,从先从最左边的分支(SHIP1)开始,并取完该分支的数据,然后才开始中间的分支(SHIP2)。联邦查询的执行时间大约为 Exec time (SHIP1) + Exec time (SHIP2) + Exec time (SHIP3)。如果 SHIP1 花费 10 分钟, SHIP2 花费 5 分钟,SHIP3 花费 7 分钟,那么该查询的执行时间大约为 10 + 5 + 7 = 22 分钟。下面的图突出显示了该处理过程的串行化性质:


图 2. 显示查询串行化执行的时间线
在 WebSphere Federation Server V9.1 中异步执行联邦查询

上一页  1 2 3 4 5 6 7  下一页

Tags:WebSphere Federation Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接