[发明专利]一种查询脚本的生成方法及装置有效
申请号: | 201611204520.X | 申请日: | 2016-12-23 |
公开(公告)号: | CN108241622B | 公开(公告)日: | 2022-07-05 |
发明(设计)人: | 蒋亚飞 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242 |
代理公司: | 北京鼎佳达知识产权代理事务所(普通合伙) 11348 | 代理人: | 王伟锋;刘铁生 |
地址: | 100083 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 查询 脚本 生成 方法 装置 | ||
本发明公开了一种查询脚本的生成方法及装置,涉及计算机技术领域,主要目的是提高数据库的查询性能。所述方法包括:接收输入的查询参数;获取用于描述数据属性的元数据;根据所述查询参数和所述元数据构造分析树,所述分析树具有多个数据节点;判断所述分析树的每个数据节点是否符合预设聚合条件;如果是,则将符合预设聚合条件的数据节点进行聚合;根据所述聚合后的分析树生成查询脚本。本发明主要用于查询脚本的生成。
技术领域
本发明涉及计算机领域,尤其是一种查询脚本的生成方法及装置。
背景技术
数据库是按照数据结构来组织、存储和管理数据的仓库,数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用,例如数据查询,当在软件系统中进行数据查询时需要生成数据库执行查询操作的脚本,进而通过生成的查询脚本来实现数据查询。
现有技术的查询脚本生成方式主要通过生成对应功能的组件,进而在组件中输入查询参数生成数据库执行查询操作的脚本。然而在生成查询脚本的过程中会涉及到分组聚合操作,并且该分组聚合的操作是在生成脚本中的最后一个步骤执行,由于分组聚合操作需要将不在聚合函数中的查询列全部添加到数据库脚本分组语法中,使得数据库分组语法中的选择列过多,导致数据库的查询性能较差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种脚本的生成方法及装置,能够提高数据库的查询性能。
一方面,本发明提供了一种查询脚本的生成方法,包括:
接收输入的查询参数;
获取用于描述数据属性的元数据;根据所述查询参数和所述元数据构造分析树,所述分析树具有多个数据节点;
判断所述分析树的每个数据节点是否符合预设聚合条件;
如果是,则将符合预设聚合条件的数据节点进行聚合;
根据所述聚合后的分析树生成查询脚本。
进一步地,所述分析树的数据节点与数据表对应,所述判断所述分析树的每个数据节点是否符合预设聚合条件包括:
获取所述数据节点对应的数据表,并确定所述数据表的查询列;
判断所述查询列中是否存在指标列,所述指标列指涉及数据计算的列;
如果是,则判断所述数据节点符合预设聚合条件;否则,判断所述数据节点不符合预设聚合条件。
进一步地,在判断所述查询列中存在指标列之后,在判断所述数据节点符合预设聚合条件之前,所述方法还包括:
获取包含分组语法字段的数据;
判断所述包含分组语法字段的数据是否存在于所述数据节点对应的数据表中;
如果是,则判断所述数据节点符合预设聚合条件;否则,判断所述数据节点不符合预设聚合条件。
进一步地,在判断所述包含分组语法字段的数据存在于所述数据节点对应的数据表中之后,在判断所述数据节点符合预设聚合条件之前,所述方法还包括:
判断所述查询列中除指标列之外的查询列是否均包含所述分组语法字段;
如果是,则判断所述数据节点符合预设聚合条件;否则,判断所述数据节点不符合预设聚合条件。
进一步地,在将符合预设聚合条件的数据节点进行聚合之前,所述方法还包括:
获取所述分析树中标识是否能够进行数据聚合的字段;
将所述标识是否能够进行数据聚合的字段设置为能够进行数据聚合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611204520.X/2.html,转载请声明来源钻瓜专利网。