[发明专利]数据库查询脚本的生成方法、装置、存储介质及处理器有效
申请号: | 201710905876.4 | 申请日: | 2017-09-29 |
公开(公告)号: | CN110019296B | 公开(公告)日: | 2021-04-23 |
发明(设计)人: | 蒋亚飞 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 脚本 生成 方法 装置 存储 介质 处理器 | ||
本发明公开了一种数据库查询脚本的生成方法、装置、存储介质及处理器,所述方法包括:获得查询请求,所述查询请求中至少包括查询参数;根据所述查询参数,在第一TreeBuilder集合中确定与所述查询参数相对应的目标TreeBuilder;其中,所述第一TreeBuilder集合包括至少两个TreeBuilder,所述第一TreeBuilder集合中的每个TreeBuilder的构造逻辑不同;基于所述目标TreeBuilder,生成分析树;基于所述分析树,生成查询脚本,所述查询脚本用于根据所述查询参数在数据库中进行数据查询。
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据库查询脚本的生成方法、装置、存储介质及处理器。
背景技术
在数据库中进行数据查询时,需要构造数据库查询脚本,即SQLScript。根据输入的业务查询参数(即,CommonQuery)构造SQLScript。
而通用的查询脚本生成方案无论是哪种查询场景都使用同一套TreeBuilder(构造树逻辑),从而生成的查询脚本在针对某一个查询场景时查询性能较差。
发明内容
鉴于上述问题,提出了本发明以便提供一种数据库查询脚本的生成方法、装置、存储介质及处理器,用以解决现有技术中通用的查询脚本生成方案存在查询性能较差的技术问题。
本申请提供了一种数据库查询脚本的生成方法,包括:
获得查询请求,所述查询请求中至少包括查询参数;
根据所述查询参数,在第一TreeBuilder集合中确定与所述查询参数相对应的目标TreeBuilder;其中,所述第一TreeBuilder集合包括至少两个TreeBuilder,所述第一TreeBuilder集合中的每个TreeBuilder的构造逻辑不同;
基于所述目标TreeBuilder,生成分析树;
基于所述分析树,生成查询脚本,所述查询脚本用于根据所述查询参数在数据库中进行数据查询。
上述方法,优选地,在基于所述分析树,生成查询脚本之前,所述方法还包括:
在第二TreeBuilder集合中确定目标OptimizeTreeBuilder;其中,所述第二TreeBuilder集合中包括至少一个OptimizeTreeBuilder,所述第二TreeBuilder集合中的每个OptimizeTreeBuilder的构造逻辑不同;
基于所述目标OptimizeTreeBuilder,对所述分析树进行优化操作。
上述方法,优选地,还包括:
执行所述查询脚本,以得到查询结果。
上述方法,优选地,基于所述分析树,生成查询脚本,包括:
基于所述分析树中的构造逻辑,获取当前查询所涉及的维度表和至少两个事实表;
将所述至少两个事实表依次关联到所述维度表上,得到所述维度表与全部所述事实表进行关联的关联结果;
利用所述关联结果构造数据库的查询脚本。
上述方法,优选地,查询参数至少包括过滤条件,则基于分析树,生成查询脚本,包括:
找出分析树的所有叶子节点,其中,每个叶子节点对应一个表;
提取查询参数中的过滤条件,从查询参数的过滤条件中筛选出与叶子节点对应的各个表中的分区键字段一致的分区键字段过滤条件;
依据预设的表和分区键字段的对应关系,将筛选出的分区键字段过滤条件添加到包含分区键字段的叶子节点中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710905876.4/2.html,转载请声明来源钻瓜专利网。