[发明专利]基于SQL语句的报表查询方法和系统在审
申请号: | 202111564246.8 | 申请日: | 2021-12-20 |
公开(公告)号: | CN114238380A | 公开(公告)日: | 2022-03-25 |
发明(设计)人: | 李启飞;陈诚;王春晖 | 申请(专利权)人: | 浙江太美医疗科技股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2455 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 骆希聪 |
地址: | 314000 浙江省嘉兴市经济技*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 sql 语句 报表 查询 方法 系统 | ||
本发明提供了一种基于SQL语句的报表查询方法系统。查询方法包括如下的步骤:接收多个报表查询请求,并获取每个报表查询请求产生的原始SQL语句;根据合并规则将多个报表查询请求对应的多个原始SQL语句在预设时间内完成合并,以生成一个或多个查询SQL语句,其中,合并规则包括将多个原始SQL语句中的关键词select和关键词group by作为合并标识的第一合并规则;以及根据一个或多个查询SQL语句执行多个报表查询请求。本发明的基于SQL语句的报表查询方法和系统,可以有效提升查询速率,提升系统稳定性。
技术领域
本发明主要涉及数据处理领域,尤其涉及一种基于SQL语句的报表查询方法和系统。
背景技术
当前很多报表系统查询一张报表时,都会触发多条SQL语句的查询流程,这样的查询方式存在着一些缺陷。例如,用户的需求有时会涉及同时访问多张报表或基于同一张报表提出多个查询请求,但是对于SQL的执行引擎而言,同时访问量是每张报表对应的SQL语句个数乘以同时访问的报表数。这就对SQL执行引擎压力很大。导致出现查询性能问题,如果造成系统故障就会对查询速率和用户体验产生不好的影响。
发明内容
本发明要解决的技术问题是提供一种基于SQL语句的报表查询方法和系统,可以有效提升查询速率,提升系统稳定性。
为解决上述技术问题,本发明提供了一种基于SQL语句的报表查询方法,包括如下的步骤:
接收多个报表查询请求,并获取每个报表查询请求产生的原始SQL语句;
根据合并规则将多个报表查询请求对应的多个原始SQL语句在预设时间内完成合并,以生成一个或多个查询SQL语句,其中,所述合并规则包括将所述多个原始SQL语句中的关键词select和关键词group by作为合并标识的第一合并规则;以及
根据所述一个或多个查询SQL语句执行所述多个报表查询请求。
在本发明的一实施例中,所述关键词select之后字段包括聚合函数和查询字段,且所述查询字段与所述关键词group by之后字段相同,所述第一合并规则包括:当多个原始SQL语句中的关键词from之后字段以及关键词where之后字段相同、而关键词group by之后字段不同,则将所述多个原始SQL语句中的所述关键词select之后字段和所述关键词group by之后字段分别合并。
在本发明的一实施例中,所述合并规则还包括仅将所述多个原始SQL语句中的关键词select作为合并标识的第二合并规则。
在本发明的一实施例中,所述第二合并规则包括:当多个原始SQL语句中的关键词from之后字段以及关键词where之后字段相同、而关键词select之后字段不同,则将所述关键词select之后字段合并。
在本发明的一实施例中,所述根据合并规则将多个报表查询请求对应的多个原始SQL语句在预设时间内完成合并,以生成一个或多个查询SQL语句的步骤具体包括:
将与所述多个报表查询请求对应的所述多个原始SQL语句分别转化为原始Java模型实例;
根据所述合并规则将与所述多个原始SQL语句对应的多个原始Java模型实例合并,以生成一个或多个查询Java模型实例;以及
将所述一个或多个查询Java模型实例解析以获得所述一个或多个查询SQL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江太美医疗科技股份有限公司,未经浙江太美医疗科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111564246.8/2.html,转载请声明来源钻瓜专利网。