论文摘要
目前,随着信息化的逐渐普及,通信、金融、电力等领域对实时数据处理和查询的需求逐渐提高,催生了支持实时性的数据库诞生。内存容量的增加和成本的降低使得基于内存的数据库成为可能。在内存库的应用过程中,每天都有大量的实时数据需要处理,磁盘数据库无法完成该项任务,内存数据库凭借其在内存中处理数据的优势越来越成为实时数据处理的主流。而内存数据库需要面临和磁盘数据库一样的难题:数据的查询。在内存库应用于高性能服务器端时,内存数据库管理系统在短时间内将接受大量的查询语句,这给内存数据库的查询业务带来了极大的挑战。在海量实时数据的查询过程中,查询效率的好坏很大程度上决定了内存数据库的性能,因此对内存数据库SQL语句的查询优化成为迫在眉睫的研究课题。本文的目标就是研究当前数据库SQL语句的查询优化技术并结合内存数据库的特性,设计一套适合于内存数据库查询优化引擎,以满足当前内存库应用过程中海量实时数据快速查询的需求。同时提出了本文要解决的问题:在内存数据库中为SQL语句的查询设计执行方案,使得该方案在尽量短的时间完成语句的查询任务。通过对多核环境下语句查询问题的深入分析、研究并结合现有的自主开发的内存数据库,设计了一套适合于内存库在多核环境下并发执行的SQL语句优化模块,包括优化策略空间的设计和最优执行计划的提出。该方案综合应用了当前数据库对于SQL语句优化前调整的主流规则,并将SQL语句的优化策略空间以图的形式表示,最后根据本文提出的搜索算法在图中搜索该SQL语句的最优执行计划。为验证该SQL语句优化方案的可行性,将得到的最终的优化方案与普通执行方案进行仿真测试比较。测试结果显示,采用该SQL语句的优化方案,在对海量实时数据查询过程中,SQL语句的查询优化性能得到明显提高。