论文部分内容阅读
计算机技术的飞速发展使得硬件和软件价格不断降低,人力资源成本成为部署数据库应用系统的主要支出;同时,数据库系统的规模越来越大,复杂度越来越高,对数据库管理员提出了很高的要求。为了更好的增强数据库系统的稳定性,降低数据库系统的维护费用,实现数据库系统的自我管理能力成为解决这个问题的关键。
自优化是自管理框架中很重要的一个组成部分,而自优化的一个核心问题是查询语句的优化。本文设计并实现了一个自优化的查询处理器,它能够自动识别高负载查询语句,监控它们的执行过程,分析反馈信息并提供统计信息的调整方案和参数重配置建议,最终提高整个数据库应用系统的工作效率,减轻管理员的负担。本文的主要工作包括:
(1)设计了一个具有自管理能力的自动化查询处理器模型AMP,该模型引入一个自管理模块:SQL管理器,该管理器主要包括数据库诊断监控器、UDI诊断器、SQL分析器、SQL执行信息分析和调整四个部分,它能够在无人工干预的情况下自动分析系统负载,进行查询监控和分析,调整系统统计信息,并优化查询执行计划,从而有效的提高查询执行效率。
(2)在自动化查询处理器AMP的基础上,给出了一个基于反馈的查询优化器SMO的设计模型。SMO通过比较分析查询语句的实际执行信息来验证统计信息的准确性和代价估计的准确性,完善其中缺少的统计信息和估计信息,调整其中错误的统计信息和代价估计。SMO的设计完全符合自主计算的过程:监控、分析、计划、执行。它的每一步实现都只需要利用AMP框架提供的自管理单元,以及对原有查询优化器的轻量级修改,基本是组装式的软件开发,有很好的稳定性和扩展性。
(3)本文重点讨论了基于反馈的数据分布(柱状图)的优化策略,形成了一个成熟的监控、分析和调整的优化流程。基于UDI的诊断器自动监控分析数据分布的变化状态,基于反馈的分析器对变化了的数据分布进行分析和调整,调整模块利用新的调整信息生成适合当前数据分布状态的查询执行计划,最终交由执行引擎执行并返回查询结果。整个过程形成一个有机的整体,自动完成统计信息的更新和查询执行计划的优化,大大降低管理员的负担。
本文还给出了自动化查询优化器的实现流程和算法,并进行了初步的测试和分析。