[发明专利]数据库查询语句的处理方法、存储介质与设备在审
申请号: | 202310065655.6 | 申请日: | 2023-01-13 |
公开(公告)号: | CN116257551A | 公开(公告)日: | 2023-06-13 |
发明(设计)人: | 范国腾;张敬涛 | 申请(专利权)人: | 北京人大金仓信息技术股份有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/242 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 刘长江 |
地址: | 100102 北京市朝阳区容*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 语句 处理 方法 存储 介质 设备 | ||
本发明提供了一种数据库查询语句的处理方法、存储介质与计算机设备。其中上述方法包括:获取含有UNION ALL关键词的查询语句;判断UNION ALL关键词所涉及的数据表的列属性是否一致;若否,将数据表的列属性转换一致;继续执行查询语句。本实施例的数据库查询语句的处理方法,将数据库查询语句中UNION ALL关键字所涉及的两个查询语句中的列属性转换为相同的数据类型,从而消除UNION ALL的子查询,由此来减少数据库查询的时间,提高数据库的响应速度,能够极大地提升数据库的性能。
技术领域
本发明涉及数据库技术,特别是涉及一种数据库查询语句的处理方法、存储介质与设备。
背景技术
在一些数据库使用场景中,需要对多个数据表中的信息进行合并处理,一般选择的方法是在查询语句中使用UNION ALL关键字将两个结果集进行合并。但是UNION ALL关键字的使用有多个限制条件:UNION ALL内部的SELECT语句必须拥有相同数量的列,列也必须拥有相似的数据类型。当UNION ALL涉及的SELECT语句中对应的列属性只是相似的数据类型时,UNION ALL的内部执行会消耗很多的时间,从而导致性能下降,数据库反应缓慢。
发明内容
本发明的一个目的是提升数据库的性能。
本发明一个进一步的目的是提数据库的响应速度。
本发明一个进一步的目的是数据库能够自主地将UNION ALL涉及的列属性转换为相同的类型。
特别地,本发明提供了一种数据库查询语句的处理方法,其包括:
获取含有UNION ALL关键词的查询语句;
判断UNION ALL关键词所涉及的数据表的列属性是否一致;
若否,将数据表的列属性转换一致;
继续执行查询语句。
可选地,判断所述UNION ALL关键词所涉及的数据表的列属性是否一致的步骤包括:
分别获取数据表的列属性ID;
判断数据表的列属性ID是否相等。
可选地,判断UNION ALL关键词所涉及的数据表的列属性是否一致的步骤之后包括:
若是,则不对数据表的列属性做处理,继续执行查询语句。
可选地,将数据表的列属性转换一致的步骤包括:
获取数据库预设的转换规则;
判断转换规则是否可以对数据表的列属性进行转换;
若是,根据转换规则对数据表的列属性进行转换。
可选地,获取数据库预设的转换规则的步骤包括:在数据库中获取转换规则对应的系统表;
判断转换规则是否可以对数据表的列属性进行转换的步骤包括:在系统表中查询数据表的列属性所能转换的其他类型,并生成列属性的类型集合;对UNION ALL关键词所涉及的数据表的列属性类型集合取交集;判断交集中是否存在类型信息。
可选地,类型集合包括:数据表的列属性所能转换的其他范围更大的类型和列属性自身的类型。
可选地,判断转换规则是否可以对数据表的列属性进行转换的步骤之后还包括:
若否,则不做转换处理,继续执行查询操作。
可选地,根据转换规则对数据表的列属性进行转换的步骤之后包括:
根据转换后的列属性生成新的目标列;
消除UNION ALL的子查询。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京人大金仓信息技术股份有限公司,未经北京人大金仓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310065655.6/2.html,转载请声明来源钻瓜专利网。