本发明属于数据库查询优化,尤其是涉及一种用于数据库查询优化的物化视图设计方法。
背景技术:
1、在数据库查询优化领域中,尤其是线上分析处理(online analyticalprocessing,olap)系统中,查询负载中往往存在重叠的子查询,这些子查询之间存在大量的重复存储和计算开销,在这些子查询上建立物化视图以避免冗余的计算,从而加速查询提升性能是一种常见的做法。为了利用物化视图的潜力,需要解决物化视图生命周期中的三个关键问题:1)视图设计(view design):确定哪些视图需要物化,包括如何存储、索引以及淘汰它们。2)视图维护(view maintenance):在基表更新时有效地更新物化视图。3)视图利用(view exploitation):有效地利用物化视图来加速查询处理。
2、为了通过物化视图进行查询优化,需要先进行视图设计中的视图选择这一环节,即从历史查询负载中选择一批值得物化的视图进行物化。然而现有的物化视图选择主要倚靠专家经验进行人工选择,在大数据环境下,依靠人工不能有效选择出值得物化的候选子查询。
3、不仅如此,依靠人工也难以完成视图设计中的视图的淘汰环节。随着物化视图的不断创建,物化视图占用的空间越来越多,而基于历史查询负载构建的物化视图可能不能够对未来查询负载带来收益,需要及时淘汰也节约存储空间。
技术实现思路
1、为解决上述背景技术中存在的缺点,本发明提供了基于cosette和牛顿冷却定律的视图设计方法,该方法涵盖视图设计中的视图选择策略与视图淘汰机制。视图选择策略基于cosette查询语句等价证明器选择出候选物化视图,并使用贪心策略进一步选择出需要物化的视图;视图淘汰机制基于牛顿冷却定律对物化视图进行打分和淘汰。
2、本发明的目的是通过以下技术方案来实现的:
3、一种用于数据库查询优化的物化视图设计方法,包括以下步骤:步骤s1,针对postgresql数据库,收集历史查询负载和对应的模式;步骤s2,构建查询负载的cosette模式;
4、步骤s3,使用cosette对子查询进行等价识别和合并与频次统计;步骤s4,依据频次和贪心策略推荐出现最多的候选子查询用于实际物化;
5、步骤s5,在postgresql中创建物化视图,通过牛顿冷却定律计算式对物化视图进行打分和替换;
6、步骤s6,在创建的物化视图环境下,对用户的原始查询语句进行查询重写以进行查询优化。
7、具体地,所述步骤s3具体为使用cosette开放api对查询负载中的子查询进行两两的逻辑等价识别判断并合并统计出现频次。
8、具体地,所述步骤s3还包括减少两两等价判断的api调用次数的步骤,包括以下子步骤:
9、删除多样的选择谓词;
10、按连接数量进行分类。
11、具体地,所述步骤s3还包括提高识别的效果的步骤,包括以下子步骤:
12、对查询语句中不同部分涉及的元素按字母序进行排序;
13、对多个连接谓词中每一个谓词的等号左右两个操作数进行字母序排序;
14、对多个连接谓词进行字母序排序。
15、具体地,所述步骤s5中牛顿冷却定律计算式为:
16、
17、其中,g(tn)和g(tn-1)分别为tn和tn-1时刻物化视图的得分,rmatch(tn)为命中奖励函数,rrecommand(tn)为推荐奖励函数;β′基于β,β为冷却系数,β>0且为常数。
18、具体地,所述rmatch(tn)命中奖励函数具体为,当时刻t没有命中时,该函数返回的值为0,当时刻t命中被用于重写时则将其打分增0加γ,调整γ可以调整奖励函数在打分中的占比;计算式为:
19、
20、具体地,所述rrecommand(tn)推荐奖励函数具体为,在时刻t,如果发生推荐服务,如果当前物化视图被再次推荐则进行奖励,如果没有被推荐则打分不变;计算式为:
21、
22、本发明的有益效果:
23、对大数据环境下物化视图设计中的视图选择和视图淘汰策略进行了深入分析和研究,提出了基于cosette查询语句等价证明器的视图选择策略;提出了基于牛顿冷却定律的物化视图打分和淘汰策略。提升了大数据环境下视图设计方案的效率和效果。
1.一种用于数据库查询优化的物化视图设计方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种用于数据库查询优化的物化视图设计方法,其特征在于,所述步骤s3具体为使用cosette开放api对查询负载中的子查询进行两两的逻辑等价识别判断并合并统计出现频次。
3.根据权利要求2所述的一种用于数据库查询优化的物化视图设计方法,其特征在于,所述步骤s3还包括减少两两等价判断的api调用次数的步骤,包括以下子步骤:
4.根据权利要求2所述的一种用于数据库查询优化的物化视图设计方法,其特征在于,所述步骤s3还包括提高识别的效果的步骤,包括以下子步骤:
5.根据权利要求1所述的一种用于数据库查询优化的物化视图设计方法,其特征在于,所述步骤s5中牛顿冷却定律计算式为:
6.根据权利要求5所述的一种用于数据库查询优化的物化视图设计方法,其特征在于,所述rmatch(tn)命中奖励函数具体为,当时刻t没有命中时,该函数返回的值为0,当时刻t命中被用于重写时则将其打分增0加γ,调整γ可以调整奖励函数在打分中的占比;计算式为:
7.根据权利要求5所述的一种用于数据库查询优化的物化视图设计方法,其特征在于,所述rrecommand(tn)推荐奖励函数具体为,在时刻t,如果发生推荐服务,如果当前物化视图被再次推荐则进行奖励,如果没有被推荐则打分不变;计算式为: