物化视图的自动创建方法及基于物化视图的快速查询方法技术

技术编号:32799459 阅读:26 留言:0更新日期:2022-03-23 20:03
本申请提出了一种物化视图的自动创建方法,包括:获取历史查询记录;从所有历史查询语句中提取出至少一频繁项集;将涉及相同基础数据表的所有频繁项集按照关联性由强到弱排序获得频繁项集顺序集;第一次根据频繁项集顺序集依次创建对应的物化视图,在每创建一物化视图后计算对应的收益率并删除该物化视图,根据所有收益率获取筛除条件;第二次根据频繁项集顺序集依次创建对应的物化视图,直到创建任一物化视图后计算得到的收益率小于或等于筛除条件时停止。该方法通过分析历史查询记录,提炼出多个数据元进行频繁项集挖掘,根据频繁项集自动创建对应的物化视图,并通过物化视图的收益率控制物化视图的数量,合理规划和利用存储空间。储空间。储空间。

【技术实现步骤摘要】
物化视图的自动创建方法及基于物化视图的快速查询方法


[0001]本申请涉及数据库
,特别是涉及一种物化视图的自动创建方法以及一种基于物化视图的快速查询方法。

技术介绍

[0002]数据库是指长期存储在计算机内有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性。
[0003]但随着大数据时代的来临,数据库中的数据量越来越庞大,因此查询的响应时间也越来越长。物化视图是一种有效的查询手段,它是通过预先计算和保存中间结果来提高数据访问时间的物理结构,能够大幅缩短查询响应时间。也就是说将一些大的、耗时的计算和查询结果用物化视图实现,会提高查询的效率。
[0004]目前物化视图大多是通过人工进行选择创建的,并且后期对于物化视图的更新和维护更是少不了人工的参与。对于大数据时代下,拥有庞大数据量的数据库,采用人工选择创建、更新以及维护物化视图的方法效率是极其低下的。并且,物化视图需要占用一定的存储空间,如果创建的物化视图过多,会导致存储占用过大以及数据插入速度缓慢,反而影响查询时的响应速度。

技术实现思路

[0005]第一方面,本申请实施例提供了一种物化视图的自动创建方法,该方法通过分析历史查询记录中的历史查询语句,提炼出多个数据元进行频繁项集挖掘,根据频繁项集自动创建对应的物化视图,并且根据创建物化视图所带来的收益控制最终创建的物化视图的数量,合理规划和利用存储空间,实现存储空间利用最优化以及查询速度提高的最大化。该方法包括以下步骤:获取历史查询记录,其中所述历史查询记录包括至少一历史查询语句,任一所述历史查询语句涉及至少一基础数据表的至少一字段;从所有所述历史查询语句中挖掘出至少一频繁项集,其中所述频繁项集是与至少一所述基础数据表有强关联性的字段或字段组合的集合;将涉及相同基础数据表的所有频繁项集按照关联性由强到弱排序获得频繁项集顺序集;第一次根据所述频繁项集顺序集依次创建对应的物化视图,在每创建一所述物化视图后计算对应的收益率并删除该物化视图,根据所有所述收益率获取筛除条件;第二次根据所述频繁项集顺序集依次创建对应的物化视图,直到创建任一所述物化视图后计算得到的收益率小于或等于所述筛除条件时停止。
[0006]第二方面,本申请实施例提供了一种基于物化视图的快速查询方法,该方法应用第一方面的物化视图的自动创建方法提前创建好历史物化视图,通过历史物化视图提升查询速度。该方法包括:
根据第一方面任一所述的物化视图的自动创建方法获得至少一历史物化视图;获取查询语句;从所述查询语句中提取出涉及到的至少一数据表以及至少一字段或至少一字段组合作为匹配条件;根据所述匹配条件从所有所述历史物化视图中匹配出最优物化视图;根据所述查询语句从所述最优物化视图获取查询结果。
[0007]第三方面,本申请实施例提供了一种物化视图的自动创建装置,用于实现第一方面中所述的物化视图的自动创建方法,该装置包括以下模块:第一获取模块,用于获取历史查询记录,其中所述历史查询记录包括至少一历史查询语句,任一所述历史查询语句涉及至少一基础数据表的至少一字段;第一解析模块,用于从所有所述历史查询语句中挖掘出至少一频繁项集,其中所述频繁项集是与至少一所述基础数据表有强关联性的字段或字段组合的集合;排序模块,用于将涉及相同基础数据表的所有频繁项集按照关联性由强到弱排序获得频繁项集顺序集;第一创建模块,用于第一次根据所述频繁项集顺序集依次创建对应的物化视图,在每创建一所述物化视图后计算对应的收益率并删除该物化视图,根据所有所述收益率获取筛除条件;第二创建模块,用于第二次根据所述频繁项集顺序集依次创建对应的物化视图,直到创建任一所述物化视图后计算得到的收益率小于或等于所述筛除条件时停止。
[0008]第四方面,本申请实施例提供了一种基于物化视图的快速查询装置,用于实现第二方面中所述的基于物化视图的快速查询方法,该装置包括以下模块:创建模块,用于根据第一方面中任一所述的物化视图的自动创建方法获得至少一历史物化视图;第二获取模块,用于获取查询语句;第二解析模块,用于从所述查询语句中提取出涉及到的至少一数据表以及至少一字段或至少一字段组合作为匹配条件;匹配模块,用于根据所述匹配条件从所有所述历史物化视图中匹配出最优物化视图;查询模块,用于根据所述查询语句从所述最优物化视图获取查询结果。
[0009]第五方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以如上任意申请实施例所述的物化视图的自动创建方法或者基于物化视图的快速查询方法。
[0010]第六方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据如上任意申请实施例所述的物化视图的自动创建方法或者基于物化视图的快速查询方法。
[0011]本申请的主要贡献和创新点如下:1.在本申请的一些申请实施例中提供了一种物化视图的自动创建方法,该方法通过分析历史查询记录中的每一条历史查询语句,提取出其中的数据元,例如数据表、字段或
字段组合,从中挖掘出频繁项集并自动创建对应的物化视图,并且动态分析新创建的物化视图带来的收益率,根据收益率确定筛除条件以控制创建最终创建物化视图的数量,达到动态平衡的效果,以实现查询效率的显著提升。并在一些申请实施例中,将创建物化视图需要使用的存储空间看作一种开销,查询速度变化看做一种物化视图带来的收益,根据存储空间变化与查询速度变化的比值来计算物化视图所带来的收益率。
[0012]2.在本申请的一些申请实施例中提供了一种基于物化视图的快速查询方法,该方法根据本申请提供的物化视图的自动创建方法一次性或者多次获得历史物化视图,在得到新的查询语句后,从查询语句中提取出数据表和字段或者字段组合作为匹配条件,根据匹配条件从所有历史物化视图中匹配出最优物化视图,最后根据查询语句可以从最优物化视图中快速获取查询结果。并在一些申请实施例中,定义最优物化视图的匹配方法。实现根据历史查询记录自动创建历史物化视图的同时,为新的查询语句自动匹配最优物化视图以提高数据查询的效率。
[0013]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
[0014]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例一的物化视图的自动创建方法的流程图;图2是根据本申请实施例二的基于物化视图的快速查询方法的流程图;图3是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
[0015]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种物化视图的自动创建方法,其特征在于,包括以下步骤:获取历史查询记录,其中所述历史查询记录包括至少一历史查询语句,任一所述历史查询语句涉及至少一基础数据表的至少一字段;从所有所述历史查询语句中挖掘出至少一频繁项集,其中所述频繁项集是与至少一所述基础数据表有强关联性的字段或字段组合的集合;将涉及相同基础数据表的所有频繁项集按照关联性由强到弱排序获得频繁项集顺序集;第一次根据所述频繁项集顺序集依次创建对应的物化视图,在每创建一所述物化视图后计算对应的收益率并删除该物化视图,根据所有所述收益率获取筛除条件;第二次根据所述频繁项集顺序集依次创建对应的物化视图,直到创建任一所述物化视图后计算得到的收益率小于或等于所述筛除条件时停止。2.根据权利要求1所述的物化视图的自动创建方法,其特征在于,所述收益率为创建任一所述物化视图后的空间占用变化和查询速度变化的比值。3.根据权利要求2所述的物化视图的自动创建方法,其特征在于,所述空间占用变化为建立任一所述物化视图前后存储空间之差与建立该物化视图后的存储空间的比值;所述查询速度变化为建立任一所述物化视图前后查询速度之差与建立该物化视图后的查询速度的比值。4.根据权利要求1所述的物化视图的自动创建方法,其特征在于,所述筛除条件为所有所述收益率的中位数。5.根据权利要求1所述的物化视图的自动创建方法,其特征在于,所述字段为被包含字段或者过滤字段;所述字段组合为被包含字段组合或者过滤字段组合。6...

【专利技术属性】
技术研发人员:高春蓉李俊许振影俞青应晶傅亦婷
申请(专利权)人:浙江一山智慧医疗研究有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1