基于关联抽样的查询估计
CS2:A New Database Synopsis for Query Estimation
摘要
本文提出了一种基于数据库统计汇总信息的关联抽要视图。对选择、连接查询提供快速、精确的结果集估计。与传统方法仅依赖于简单随机抽样的方法不同,这里的抽样选取那些保持连接相关性的元组,同时能够节约存储空间。提出了一种新的统计抽样方法——逆向抽样;设计了一种强大的逆向估计器,充分利用关联元组进行结果集估计。理论证明了此法是无偏的。实验证明此方法是快速有效的。在相同的空间预算条件下,CS2能够快速构建和推导估计结果。
1、 简介
一般的查询优化,依赖于大量的统计信息和特定的前提假设。
但是可能面对如下几个问题:
l 统计信息缺失
l 假设不准确
l 占用大量额外空间
如何快速、准确的构建数据库的摘要视图,刻画数据库结果的轮廓,方便估计呢?
已经有一下集中方法:
l 直方图:适合低维度查询,属性个数比较少的时候,一旦维度增加,维护和存储将非常困难。
l 采样:估计误差比较大,采样元组不具有相关性。或者只是从结果中随机抽要,在原有关系中,不具有代表性。即使相关,也只考虑了满足星型连接的情况;或者只限于外码连接,还要额外的存储。
l 构建基于查询的数据库摘要,例如TuG方法,但是该方法,过分依赖于分簇,并且构建复杂。
直方图方法不如采样方法和摘要方法精确;采样的方法又只局限于外码连接,还需要额外的保存摘要;TuG方法过分依赖于分簇,构建过程复杂。
本文的贡献在于构建一种简单、简洁、精确的数据库摘要。先对两种摘要进行却别:
l 基于连接结果采样的摘要:从连接结果抽样;假设没有悬挂元组;
l 基于连接相关关系采样的摘要:从连接关系中,抽取可以连接的相关元组
允许考虑悬挂元组,只取一次即可。
实验表明,上述2种摘要的方法比TUG的方法精确,而且快速;关联抽样的方法,简单、精确,并且适合多种连接和任意选择操作。
2 、预备知识
² 连接图
² 查询Q的连接图
² 连接关系
² 连接元组
² 源关系、非源关系、采样关系、采样元组
² 关联关系、关联元组
² 关联采样摘要
² 抽样顺序图
² 简单关联抽样
3、关联抽样摘要的构建
一般的采样
u 采样元组过于独立,相互之间缺少关联
u 导致大量累积误差
关联抽样
u 从连接关系中抽样,保持了连接关系和连接相关性
u 降低了估计得误差
u 文献【10】算法实现关联抽样摘要的定期更新
关联摘要构建时,最好采用以下原则:
u 从many-to-one关系采样,以减少样本空间
n One-to-many 会使样本空间骤增,例如下图中,如果以学生为抽样关系,一个学生样本,会产生许多选课元组和他有关系。从而样本空间会突然增大。
u 仅保存关联元组的连接属性,或者一些经常会出现在选择条件、连接条件中的属性,以减少样本存储空间大小。
4、查询估计
u 重点研究等值连接和查询的结果估计
u 本节考虑的是无回路的连接关系图
u 假定没有悬挂元组
u 4.2.3会讨论悬挂元组在非源查询估计中的情况
(待续)