论文部分内容阅读
在数据库应用系统中,加快数据查询的执行速度非常重要。主要的方法有两种,一种方法是对SQL查询语句进行优化,另一种方法则是采用物化视图技术。物化视图存储了视图的定义和预查询结果,通过将用户针对数据库基本关系表提出的查询转化为对物化视图的查询,避免了直接访问大量的原始记录以及耗时的计算,从而大幅减少了查询执行阶段所需的数据量和计算量,节省了查询的响应时间,最终有效地改善了系统的性能。本文首先阐述了物化视图在数据库应用中的重要意义,综述了当前国外主流商业数据库在物化视图研究领域的发展历程及研究现状。随后,本文重点研究了物化视图的选择和查询重写技术。对于一个给定的SQL查询语句,数据库系统首先需要决定的是哪些物化视图可以被该查询所利用,这个问题即为物化视图的选择问题。物化视图的选择主要分为候选物化视图筛选、物化视图代价估计和最优物化视图配置搜索三个阶段,本文将基于物化视图选择的总体框架对上述三个阶段的具体实现及相关算法进行详细的研究和讨论。在物化视图选择给出了可供系统利用的物化视图集合后,系统还需要决定如何利用这些物化视图对SQL查询语句进行重写,并在可能存在有多种查询重写策略的情况下尽量从中选择出最好的一种方案,以便最大限度地提高查询重写后的执行性能。为此,本文后半部分着重研究了基于连接物化视图和聚合物化视图的聚合查询重写算法,并提出了基于搜索二叉树的最优重写选择方法。在系统的详细设计上,我们对OSCAR数据库现有的体系框架进行了扩充和修改,主要添加了物化视图选择模块和查询重写索引管理器,同时对保存了物化视图元数据的数据字典进行维护。查询重写索引管理器作为一个辅助模块,其作用在于将系统中的有效物化视图组织起来构造成为一棵多路搜索二叉树,以便于物化视图查询重写搜索算法的实现。最后,本文以神舟OSCAR数据库为平台,给出了上述关键技术的实现,并进行了性能优化的实验测试。通过实验验证了本文各关键技术实现方法的有效性和高效性,在减少DBA工作量的同时自动优化数据库系统的性能。