论文部分内容阅读
片上多核处理器提升了片上计算能力和存储空间,提高了片上通信的速度和带宽,为高性能并行计算的应用提供了基础,其成本和功耗也为其普及提供了条件,片上多核处理器已成为未来较长一段时间内的发展趋势。多核这场硬件的革命自然也带动了软件的革命,大量的软件设计人员将多核处理器作为并行化程序设计的实现平台,多核平台与并行计算理论相结合,以多线程并行的方式提升应用程序的性能。基于多核平台,研究利用并行计算技术,实现数据库的高性能查询是本文的研究目标。本文从传统的问题入手,选择典型算法进行分析,对数据库查询过程中涉及到的查询计划构建模型、查询计划执行策略以及数据操作算法三个主要方面展开研究。本文首先通过连接子集对优化构建算法实现高效的连接子集对构建,并对其合理性进行了证明。依托构建的有效连接子集对集合,对基于多核的自底向上连接枚举并行算法进行了研究,提出一种基于逻辑转换优化的自底向上连接枚举并行算法。该算法避免了线程执行的连接子集与其他线程运行的连接子集之间的依赖关系,实现了最优查询计划的并行构建。其次,本文通过构建谓词扩展相称表,提出了可以支持多种连接的基于逻辑转换优化的自顶向下连接枚举并行算法。为了缓解搜索空间对于动态规划枚举算法的限制,本文再次提出了基于查询子图相似性优化的查询计划构建算法。该算法减少了构建的局部最优查询计划的数量,避免大量逻辑表达式的构建,一定程度上减少搜索空间的大小。最后,针对如何实现查询计划的多线程执行,获得最大的资源利用率,本文依据查询计划的执行粒度,提出了两个层次的新型优化方法,即最优查询计划的执行策略和操作算法的执行策略。这些执行策略在一定程度上避免了查询计划在执行过程中Cache访问缺失以及Cache访问冲突的发生,提高了查询计划的执行性能。