论文部分内容阅读
多处理器系统具有良好的可扩展性,它可以满足大型数据库的高性能需求。在多处理器系统中,影响其查询效率的一个重要的因素就是查询调度。虽然国内外学者对于查询调度的研究层出不穷,但是到目前为止,绝大多数关于查询调度的研究都集中在如何有效处理单个查询上,而对于多重查询调度的研究非常有限。本文的多重查询调度研究就此展开,该研究可以充分发挥多处理器系统的性能,有效提升数据库的查询效率。本文在分析现有大型数据库查询系统的基础上,考虑应采用Shared Nothing多处理器架构;我们分析了现有的多重调度算法,在此基础上提出了基于连续读取特性的Consecutive Retrieval Property调度算法。该算法可以从重组过的查询队列中,快速地找到占用全部或最多处理节点的查询组合,并将这个组合列为一个批次并行执行,这能够充分发挥多处理器系统的性能,从而有效地加快数据库的查询速度。算法的关键在于应用基于连续读取特性的重组策略,使待查询数据可以重组为具有C-R property的连续关系,然后依照此连续关系将数据顺序存储在存储器中,从而解决现有算法部分系统资源闲置的问题。CRP-Scheduling算法中并未考虑到系统对内存的需求及可能发生的I/O时间,也未考虑慢查询对于查询性能的影响。我们考虑将以上因素与CRP-Scheduling算法结合在一起,尽量保证能够重复使用内存中已存在的数据,同时避免因执行慢查询导致的系统资源闲置问题,故提出CRP-Scheduling的改进算法ICRP-Scheduling。本文通过实验证实不论内存大小、资源大小、资源种类数量以及慢查询频率如何变化,该改进算法在系统利用率和系统性能方面均明显优于其他算法,特别是当内存容量远大于查询处理对内存的需求量,以及资源大小小于320K时,该算法相较于传统的Largest-Fit-First算法有3倍以上的系统性能提高。从而证明该改进算法确实可行,对提高数据库查询的性能有很大帮助。本文将改进的查询调度算法应用在了新建的经济动态系统的查询相关模块中,使系统查询效率有了明显的提升。我们还详细介绍了整个系统的总体架构以及各个功能模块的详细设计,最后完整的展示了系统的运行状态。