[发明专利]一种SQL优化方法、装置、计算机设备及存储介质有效
申请号: | 202011012194.9 | 申请日: | 2020-09-23 |
公开(公告)号: | CN112434003B | 公开(公告)日: | 2022-11-18 |
发明(设计)人: | 高仕进 | 申请(专利权)人: | 苏宁云计算有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/242;G06F16/2453 |
代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 段晓玲 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 优化 方法 装置 计算机 设备 存储 介质 | ||
本发明公开了一种SQL优化方法、装置、计算机设备及存储介质,该方法包括:解析SQL语句,识别SQL语句涉及的主表以及辅表;获取主表和辅表在执行SQL语句对应的待优化SQL脚本的目标平台上的记录量;根据记录量以及预设分类规则对主表以及辅表进行分类,获取分类结果;根据预设优化规则以及分类结果对待优化SQL脚本进行优化处理,获取优化后SQL脚本。本发明一方面,通过分析待优化SQL脚本的执行计划,智能化重新组装优化SQL脚本,格式化输出规范的优化后的SQL脚本,提高脚本的可读性,另一方面,可以为开发人员节省出大量的时间和精力,获取高质量专家级的SQL语句,极大的减少人力成本。
技术领域
本发明涉及数据库技术领域,特别涉及一种SQL优化方法、装置、计算机设备及存储介质。
背景技术
目前网上各种HIVE SQL优化的经验分享与总结五花八门,但是行业内暂无HIVESQL自动优化的工具。
由于每个开发人员理解和能力不同,因此不同开发人员写的HIVE SQL执行计划的差异也会很大。一方面,对于同一条件下的SQL语句写法有很多,其中一些写法往往会对性能产生很大影响;另一方面,由于不同开发人员写出的代码风格不同,导致代码的可读性差异很大。
因此,亟需提出一种新的SQL优化方法。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种SQL优化方法、装置、计算机设备以及存储介质,以克服现有技术中存在的不规范写法的SQL语句的性能较差以及SQL脚本的可读性差等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
第一方面,提供了一种SQL优化方法,该方法包括如下步骤:
解析SQL语句,识别所述SQL语句涉及的主表以及辅表;
获取所述主表和所述辅表在执行所述SQL语句对应的待优化SQL脚本的目标平台上的记录量;
根据所述记录量以及预设分类规则对所述主表以及所述辅表进行分类,获取分类结果;
根据预设优化规则以及所述分类结果对所述待优化SQL脚本进行优化处理,获取优化后SQL脚本。
进一步的,所述根据所述记录量以及预设分类规则对所述主表以及所述辅表进行分类,获取分类结果包括:
判断所述主表或所述辅表的所述记录量是否超过预设阈值,若是,则将所述主表或所述辅表确定为大表,否则将所述主表或所述辅表确定为直接小表;
利用子查询将与确定为大表的所述辅表所关联的表根据关联字段进行去重,将去重后的表与确定为大表的所述辅表内关联,重新统计关联后的记录量,判断所述关联后的记录量是否超过预设阈值,若未超过,则将所述辅表确定为间接小表。
进一步的,所述根据预设优化规则以及所述分类结果对所述待优化SQL脚本进行优化处理,获取优化后SQL脚本至少包括:
利用子查询将与所述间接小表所关联的表根据关联字段进行去重,将去重后的表与所述间接小表内关联,生成第一临时表。
进一步的,所述根据预设优化规则以及所述分类结果对所述待优化SQL脚本进行优化处理,获取优化后SQL脚本至少包括:
识别所述大表中重复扫描的目标大表,从所述SQL语句的解析结果中获取目标字段与过滤条件,根据所述目标字段和所述过滤条件从所述目标大表中获取目标数据,生成第二临时表,以便后续使用所述第二临时表代替所述目标大表进行相关操作。
进一步的,所述根据预设优化规则以及所述分类结果对所述待优化SQL脚本进行优化处理,获取优化后SQL脚本至少包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁云计算有限公司,未经苏宁云计算有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011012194.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:整盘电缆导体的长度截面判定方法
- 下一篇:一种增强型有机管式膜制备方法