[发明专利]SQL优化方法、装置、电子设备及可读存储介质有效
| 申请号: | 201910266901.8 | 申请日: | 2019-04-03 |
| 公开(公告)号: | CN110119403B | 公开(公告)日: | 2020-08-18 |
| 发明(设计)人: | 杨轩;魏建钟;刘强 | 申请(专利权)人: | 北京三快在线科技有限公司 |
| 主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453 |
| 代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100083 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | sql 优化 方法 装置 电子设备 可读 存储 介质 | ||
1.一种SQL优化方法,其特征在于,包括:
获取已执行SQL的执行时长和第一原子指标数据,以及待执行的目标SQL的第二原子指标数据;
基于所述已执行SQL的执行时长和所述第一原子指标数据,获取所述目标SQL的优化规则参数;
根据所述优化规则参数以及所述第二原子指标数据,生成所述目标SQL的优化策略;
其中,所述基于所述已执行SQL的执行时长和所述第一原子指标数据,获取所述目标SQL的优化规则参数的步骤,包括:根据所述第一原子指标数据以及所述已执行SQL的执行时长,获取所述目标SQL的时长预估参数;和/或,根据所述第一原子指标数据,确定所述目标SQL的优化匹配参数;
所述根据所述第一原子指标数据以及所述已执行SQL的执行时长,获取所述目标SQL的时长预估参数的步骤,包括:
根据所述第一原子指标数据中包含的每个数据表的数据量和总查询分区数,以及所述已执行SQL的执行时长,获取每个所述数据表的单分区查询时长;根据所述已执行SQL的执行时长,以及所述第一原子指标数据中的总关联次数和总数据量,获取所述已执行SQL的复杂度时长。
2.根据权利要求1所述的方法,其特征在于,所述根据所述已执行SQL的执行时长,以及所述第一原子指标数据中的总关联次数和总数据量,获取所述已执行SQL的复杂度时长的步骤,包括:
根据所述已执行SQL的执行时长、所述第一原子指标数据中的总关联次数,以及预设的关联权重,获取所述已执行SQL的单次关联时长;
根据所述已执行SQL的执行时长、所述第一原子指标数据中的总数据量,以及预设的查询权重,获取所述已执行SQL的万条数据查询时长;
根据所述单次关联时长和所述万条数据查询时长,获取所述已执行SQL的复杂度时长。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一原子指标数据,确定所述目标SQL的优化匹配参数的步骤,包括:
根据所述第一原子指标数据,获取所述已执行SQL的历史引用字段占比、历史查询分区,以及数据表的关联次数和被引用字段的引用次数;
根据所述已执行SQL的历史引用字段占比以及历史查询分区,获取所述目标SQL的SQL优化参数,所述SQL优化参数包括历史引用字段占比阈值,和/或历史查询分区阈值;
根据所述数据表的关联次数和被引用字段的引用次数,以及预设的优化比例,获取所述目标SQL的模型优化参数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述优化规则参数以及所述第二原子指标数据,生成所述目标SQL的优化策略的步骤,包括:
根据所述时长预估参数,以及所述第二原子指标数据,获取所述目标SQL的预估执行时长,并在所述目标SQL执行前提示所述预估执行时长;
和/或,根据所述优化匹配参数,以及所述第二原子指标数据,生成所述目标SQL的优化建议并显示。
5.根据权利要求2所述的方法,其特征在于,所述根据所述时长预估参数,以及所述第二原子指标数据,获取所述目标SQL的预估执行时长,并在所述目标SQL执行前提示所述预估执行时长的步骤,包括:
根据所述第一原子指标数据和所述第二原子指标数据,获取所述目标SQL中被所述已执行SQL覆盖的数据表的第一数量,以及所述目标SQL中包含的数据表的第二数量;
根据所述第一数量和所述第二数量,获取所述目标SQL的时长预估系数;
根据所述单分区查询时长、所述单次关联时长以及所述时长预估系数,获取所述目标SQL的预估执行时长,并在所述目标SQL执行前提示所述预估执行时长。
6.根据权利要求3所述的方法,其特征在于,所述根据所述优化匹配参数,以及所述第二原子指标数据,生成所述目标SQL的优化建议并显示的步骤,包括:
根据所述第二原子指标数据,获取所述目标SQL的引用字段占比以及查询分区;
根据所述引用字段占比以及查询分区,以及所述SQL优化参数,生成所述目标SQL的SQL优化建议;
根据所述模型优化参数,生成所述目标SQL的模型优化建议。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910266901.8/1.html,转载请声明来源钻瓜专利网。





