论文部分内容阅读
大规模数据集的访问和计算使得OLAP查询往往需要付出高昂的时间代价。本文主要研究信息网格环境中分布式OLAP查询处理面临的两个重要问题:
(1)如何有效利用数据源计算能力提高单个OLAP查询处理性能?查询下推到远程数据库中并行执行有很多优点:充分利用数据源计算能力,减轻分布式查询引擎的计算负担,减少数据传输等。本文的研究重点是聚集分组运算的性能优化。目前,大多数查询处理方法对聚集运算的处理都推迟到全部连接处理完以后才进行。聚集运算尚无法直接下推到远程数据库中执行。
(2)如何重用运算结果提高一批相似查询的处理性能?复杂查询之间往往有请求局部性。如果不优化,重复请求会降低数据源处理能力,冗余数据传输降低网络带宽效率。因此,信息网格需要研究重用查询运算结果的方法。
围绕上述问题本文的研究工作和主要贡献包括:
(1)信息网格的聚集查询推送技术。本文引入了新的远程聚集运算符,并采用查询计划等价变换,使得聚集运算可以被推送到数据源中执行而不改变查询要求的操作语义。此外,当封装器代价估计准确时,查询计划调整算法将确保产生的聚集推送查询计划优于或不差于缺省查询计划。
(2)覆盖分组查询推送技术:本文提出的覆盖分组查询转换方法可以产生有利予重用公共运算结果的查询计划。同时,基于运算视图的动态计划选择可以避免因为查询结果匹配率过低而付出额外执行代价。
(3)复合视图缓存机制:为了同时具备聚集运算结果重用和部分匹配功能,本文提出复合视图缓存技术,并对查询分解方法进行了改进。通用查询分解方法产生剩余查询条件表达式的时间复杂度为O(mn)(n为查询选择条件中包含的合取表达式个数,m为合取表达式中谓词项个数)。本文提出了划分求补方法。在给定条件下,查询分解时间复杂度可减少为O(m2×n)。