首页 理论教育优化分布式数据库的并行查询

优化分布式数据库的并行查询

【摘要】:并行查询优化与分布查询处理类似。并行查询优化可以同时利用算符内并行和算符间并行的优点,还可以使用分布式数据库管理系统的技术。并行查询优化是指生成一个给定查询的执行计划,达到目标成本函数最小的目的。为了精确预测,成本模型必须包含并行环境的知识。为了估算执行计划的成本,成本模型使用数据库统计和组织信息,如关系基和分割等,就像分布式查询优化器一样。

并行查询优化与分布查询处理类似。并行查询优化可以同时利用算符内并行和算符间并行的优点,还可以使用分布式数据库管理系统的技术。

并行查询优化是指生成一个给定查询的执行计划,达到目标成本函数最小的目的。选出的计划应该是优化器给出的候选方案中最佳的,但不一定是所有可能方案中最佳的。一个查询优化器通常从搜索空间、成本模型和搜索策略来考查。

1.搜索空间

搜索空间代表输入查询的是一个替代执行计划集合。这些计划是等价的,即产生相同结果,但算符的执行序不同,实现方法也可能不同。执行计划是抽象的东西,通常是用算符树表示的,其实算符树定义的就是算符的执行序。算符树可以通过加上注解来细化,从而指出附加的执行因素,如每个算符的算法。反映两个顺序算符的一个重要注释是流水线(pipeline)执行。这种情况下,第二个算符在第一个算符完成前启动。换言之,第二个算符可以在第一个算符产生一些元组后使用。流水线执行无需将临时关系重构(materialized),即与流水线中执行的算符对应的树节点是无需存储的。搜索方式可以是深度优先,也可以是广度优先。即便是深度优先,也有左深度优先和右深度优先之分。这类问题在搜索算法中有详细讨论,这里不再赘述。

2.成本模型(www.chuimin.cn)

成本模型用于预测给定计划的成本。为了精确预测,成本模型必须包含并行环境的知识。优化器成本模型负责估算给定执行计划的成本。可以从两方面看:体系结构相关和体系结构无关。体系结构相关部分由算符算法的成本函数构成,例如,用于连接运算的嵌套循环和选择运算的顺序存取。如果忽略并发因素,则只有数据重新分割的成本函数和内存消耗有差别,这构成了体系结构相关部分。在无共享系统里,将一个关系重新分割,意味着通过互联通道传输数据。无共享系统里,每个处理器有自己的内存,无共享情况的内存消耗会由于算符间并行变得复杂。共享内存系统里,所有算符都通过一个全局内存读/写数据。测试是否有足够空间,并行执行它们就很方便,即只需让每个算符消耗的内存之和小于可用内存的大小即可。

3.搜索策略

搜索策略是探索整个搜索空间,以选择最好的计划。它可以确定哪个是最好的计划,以及执行哪种序。搜索策略不区分是集中式查询优化还是分布式查询优化。然而,搜索空间趋向越来越大,因为能存放更多各种并行执行计划。为了估算执行计划的成本,成本模型使用数据库统计和组织信息,如关系基和分割等,就像分布式查询优化器一样。