[发明专利]一种sql脚本的优化方法及装置在审
申请号: | 202210745416.0 | 申请日: | 2022-06-27 |
公开(公告)号: | CN114996279A | 公开(公告)日: | 2022-09-02 |
发明(设计)人: | 安继贤;李晶;晋晓峰 | 申请(专利权)人: | 深圳前海微众银行股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F16/28 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 雷航 |
地址: | 518027 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 脚本 优化 方法 装置 | ||
本发明实施例提供了一种sql脚本的优化方法及装置,该方法包括在检测到sql脚本的执行触发动作时,对sql脚本进行拦截,并通过索引映射库,对拦截到的sql脚本进行识别,确定sql脚本是否属于具有多索引信息的脚本,若是,则基于sql脚本对应的多个索引信息以及多个索引信息包括的各索引字段具有的区分度,确定用于在执行sql脚本时所需的第一索引信息,通过基于第一索引信息,调整sql脚本,生成需要在sql执行引擎中执行的sql脚本。如此,该方案在识别sql脚本存在多索引问题时,通过选择出的最优索引信息对该sql脚本进行自动优化,因而可以有效地避免出现索引误选的问题,并可以有效地提升sql脚本的执行效率。
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种sql脚本的优化方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。对于金融业务系统所涉及的相关业务数据,均是存储在数据库中,其中,针对相应业务数据的相关操作,都是采用连接数据库的方式,编写相应的sql(Structured Query Language,结构化查询语言)脚本,根据具体的业务逻辑,对数据库表中的字段进行增删改查。
然而,相关技术中,为了提升数据库操作的性能,每张表都会针对相关数据库表的指定字段建立索引。其中,在实际的业务中,可能会存在不同的业务逻辑,那么也就会存在不同的sql脚本,因而可能会存在针对不同的条件字段,创建不同的索引信息,这样就会导致一张表可能存在多个索引信息。如此,在执行sql脚本时,数据库引擎会根据sql脚本的条件信息按照一定的策略从sql脚本所关联的数据库表的索引信息中选择索引字段,但是,由于索引选择是数据库执行引擎所决定的,所以在针对sql脚本的相应操作中,业务开发人员是无法感知是否命中多索引的问题,因而会出现误选索引的问题,从而导致sql脚本的执行效率低。
综上,目前亟需一种sql脚本的优化方法,用以有效地避免出现索引误选的问题,以此有效地sql脚本的执行效率。
发明内容
本发明实施例提供了一种sql脚本的优化方法及装置,用以有效地避免出现索引误选的问题,以此有效地sql脚本的执行效率。
第一方面,本发明实施例提供了一种sql脚本的优化方法,包括:
在检测到结构化查询语言sql脚本的执行触发动作时,对sql脚本进行拦截,并通过索引映射库,对拦截到的sql脚本进行识别,确定所述sql脚本是否属于具有多索引信息的脚本;所述索引映射库用于指示各sql脚本的哈希值分别与对应的m个索引信息的映射关系;
若确定所述sql脚本属于具有多索引信息的脚本,则基于所述sql脚本对应的多个索引信息以及所述多个索引信息包括的各索引字段具有的区分度,确定用于在执行所述sql脚本时所需的第一索引信息;其中,每个索引字段具有的区分度用于表征该索引字段在对应的索引信息所在的数据库表中,该索引字段具有不同业务数据值的数量占比;
通过基于所述第一索引信息,调整所述sql脚本,生成用于在sql执行引擎中执行的sql脚本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司,未经深圳前海微众银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210745416.0/2.html,转载请声明来源钻瓜专利网。