论文部分内容阅读
传统的写优化数据库管理系统多数采用按行存储的方式,而对读优化的数据仓库管理系统而言,列存储表现出比行存储更加显著的性能。这是由于列存储技术是将数据表以列为单位进行存储,在查询中能有效避免读取无关的列,从而获得较高的查询效率。由于数据仓库中存储的信息量非常庞大,如何对这些庞大的数据进行有效的管理对数据仓库管理系统来说是一个巨大的挑战。解决这个问题的一个有效的方式就是采用数据压缩技术。因此,如何对压缩的列存储数据进行查询及优化的研究变得十分有意义。本文以东华-达梦数据库技术联合实验室“DWMS原型系统设计与实现”项目为背景,主要工作包括:1)对目前存在的一个基于字典的保留顺序的字符串压缩方法进行研究,在继续延用原方法中共用叶子的索引结构的同时,对原压缩方法进行了改进,提出了一个新的基于概率的字符串压缩方法,能快速的将字符串属性进行压缩和解压,降低了系统对压缩数据的查询时间。2)在列存储的数据经过压缩之后,对压缩数据上的查询策略进行了研究。首先将传统的代价模型进行修改,为了使其是基于压缩的,新增了数据压缩和解压的代价。然后针对必须要求解压的数据,研究如何合理的选择解压时机来进一步降低CPU消耗。最后给出了在压缩的数据上进行查询操作的一些具体算法,包括压缩数据的选择、连接和聚集操作。3)根据压缩的列存储数据的特点,并结合现有的数据库查询优化方法,提出了对压缩的数据进行查询的一些优化策略。为了便于对数据的快速检索和提高查询的速度,研究了索引结构和临时表的合理选择。然后对查询中经常存在的谓词和子查询进行了优化重写策略,最后给出了压缩数据上的选择和聚集操作的优化算法。4)采用本文提出的基于概率的保留顺序的字符串压缩方法对DWMS中的字符串属性进行压缩,对字符串的压缩效率进行了实验比较。然后将本文提出的一些查询优化策略应用于DWMS中经过压缩的数据,并对经过各种优化策略优化后的查询的执行时间进行了一系列实验测试。本文提出的基于概率的字符串压缩方法能快速的对字符串属性进解压,从整体上降低了系统的查询时间,达到了查询优化的目的。同时本文提出的一些优化策略使得查询可以直接在压缩数据上进行,无需解压,实现了压缩数据的查询优化。