SQL语句自动优化方法、装置、计算机设备以及存储介质制造方法及图纸

技术编号:21891727 阅读:42 留言:0更新日期:2019-08-17 14:26
本发明专利技术实施例公开了一种SQL语句自动优化方法、装置、计算机设备及存储介质,本发明专利技术基于系统性能优化,通过对干扰索引执行的非法查询条件的调整以及对调整后的查询条件的排序与所有查询所用的表排序的遍历,最终得到了满足耗费时间短且占用资源少的执行计划,在一定程度上缩短了调整SQL语句优化的时间,提高SQL语句性能测试效率。

Automatic optimization methods, devices, computer devices and storage media for SQL statements

【技术实现步骤摘要】
SQL语句自动优化方法、装置、计算机设备以及存储介质
本专利技术涉及计算机
,尤其涉及一种SQL语句自动优化方法、装置、计算机设备以及存储介质。
技术介绍
当今社会,一切皆数字化。随着大数据时代的到来,数据库经常需要在海量数据中,选出满足特定需求的数据来完成查询操作。结构化查询语言(StructuredQueryLanguage,简称SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。现有的数据库开发者一般都会涉及SQL语句性能测试,目前都是人工拷贝SQL语句到数据库运行,进行性能的优化,比较浪费费时费力。
技术实现思路
有鉴于此,本专利技术实施例提供一种SQL语句自动优化方法、装置、计算机设备以及存储介质,能够缩短调整SQL语句优化的时间,提高SQL语句性能测试效率。一方面,本专利技术实施例提供一种SQL语句自动优化方法,所述SQL语句自动优化方法包括如下步骤:获取用户输入的SQL语句的执行计划,并向用户返回所述执行计划所需的第一时间耗费和第一资源耗费;解析所述SQL语句,读取查询条件、所有查询所用的数据表以及每张所述数据表的数据量和索引;调整所述查询条件中的非法查询条件,其中所述非法查询条件为干扰所述索引执行的查询条件;遍历调整后的查询条件的排序和所有查询所用的数据表的排序,重新获取调整后的SQL语句的执行计划,并向用户返回调整后的执行计划所需的第二时间耗费和第二资源耗费;分别比较所述第一时间耗费、第二时间耗费以及所述第一资源耗费、第二资源耗费,获取并返回时间耗费短且资源耗费少的执行计划。另一方面,本专利技术实施例提供一种SQL语句自动优化装置,所述SQL语句自动优化装置包括:输入获取单元,用于获取用户输入的SQL语句的执行计划,并向用户返回所述执行计划所需的第一时间耗费和第一资源耗费;解析读取单元,用于解析所述SQL语句,读取查询条件、所有查询所用的数据表以及每张所述数据表的数据量和索引;调整单元,用于调整所述查询条件中的非法查询条件,其中所述非法查询条件为干扰所述索引执行的查询条件;遍历返回单元,用于遍历调整后的查询条件的排序和所有查询所用的数据表的排序,重新获取调整后的SQL语句的执行计划,并向用户返回调整后的执行计划所需的第二时间耗费和第二资源耗费;比较获取单元,用于分别比较所述第一时间耗费、第二时间耗费以及所述第一资源耗费、第二资源耗费,获取并返回时间耗费短且资源耗费少的执行计划。又一方面,本专利技术实施例还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的SQL语句自动优化方法。再一方面,本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上计算机程序,所述一个或者一个以上计算机程序可被一个或者一个以上的处理器执行,以实现如上所述的SQL语句自动优化方法。综上所述,本专利技术实施例提供一种SQL语句自动优化方法、装置、计算机设备及存储介质,通过对干扰索引执行的非法查询条件的调整以及对调整后的查询条件的排序与所有查询所用的表排序的遍历,最终得到了满足耗费时间短且占用资源少的执行计划,在一定程度上缩短了调整SQL语句优化的时间,提高SQL语句性能测试效率。附图说明为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种SQL语句自动优化方法的应用场景示意图;图2是本专利技术实施例提供的一种SQL语句自动优化方法的示意流程图;图3是本专利技术实施例提供的一种SQL语句自动优化方法的另一示意流程图;图4是本专利技术实施例提供的一种SQL语句自动优化装置的示意性框图;图5是本专利技术实施例提供的一种SQL语句自动优化装置的另一示意性框图;图6是本专利技术实施例提供的一种SQL语句自动优化装置的另一示意性框图;图7是本专利技术实施例提供的一种SQL语句自动优化装置的另一示意性框图;图8是本专利技术实施例提供的一种SQL语句自动优化装置的另一示意性框图;图9是本专利技术实施例提供的一种计算机设备的结构组成示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。如在本专利技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。请参阅图1和图2,图1为本专利技术实施例提供的一种SQL语句自动优化方法的应用场景示意图,图2为本专利技术实施例提供的一种SQL语句自动优化方法的流程示意图。该SQL语句自动优化方法应用于服务器或终端中,其中终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。作为一应用,如图1所示,该SQL语句自动优化方法应用于服务器10中,该服务器10可以为分布式服务平台中的一台服务器,该服务器10执行SQL语句指令,并将执行结果反馈在终端20中。需要说明的是,图1中仅仅示意出一台终端20,在实际操作过程中,服务器10可以将执行结果反馈至多台终端20中。请参阅图2,图2为本专利技术实施例提供的一种SQL语句自动优化方法的示意流程图。如图2所示,该方法包括以下步骤S101~S104。S101,获取用户输入的SQL语句的执行计划,并向用户返回所述执行计划所需的第一时间耗费和第一资源耗费;其中资源优选为中央处理器的内存资源。在本专利技术实施例中,所述第一时间耗费指的是所述SQL语句的执行计划在执行时所消耗的时长,所述第一资源耗费指的是所述SQL语句的执行计划在执行时占用中央处理器的内存资源的大小,其中,占用中央处理器的内存资源的大小可以用占用中央处理器内存资源的百分比来表示,比如:占用中央处理器的内存资源的比例为10%或者20%等,具体的百分比数需要根据实际应用进行确定,在此不作限制。其中,所述第一时间耗费可以通过系统开始执行所述SQL语句的执行计划后,即相应在系统的日志文件中出现针对所述SQL语句的执行计划的日志后,从增加针对所述所述SQL语句的执行计划的日志的时间,到执行所述SQL语句的执行计划对应的函数结束的时间,计算得到所述SQL语句的执行计划执行过程的时间耗费;所述第一资源耗费可以通过预设时间函数获取系统的中央处理器本文档来自技高网...

【技术保护点】
1.一种SQL语句自动优化方法,其特征在于,所述SQL语句自动优化方法包括如下步骤:获取用户输入的SQL语句的执行计划,并向用户返回所述执行计划所需的第一时间耗费和第一资源耗费;解析所述SQL语句,读取查询条件、所有查询所用的数据表以及每张所述数据表的数据量和索引;调整所述查询条件中的非法查询条件,其中所述非法查询条件为干扰所述索引执行的查询条件;遍历调整后的查询条件的排序和所有查询所用的数据表的排序,重新获取调整后的SQL语句的执行计划,并向用户返回调整后的执行计划所需的第二时间耗费和第二资源耗费;分别比较所述第一时间耗费、第二时间耗费以及所述第一资源耗费、第二资源耗费,获取并返回时间耗费短且资源耗费少的执行计划。

【技术特征摘要】
1.一种SQL语句自动优化方法,其特征在于,所述SQL语句自动优化方法包括如下步骤:获取用户输入的SQL语句的执行计划,并向用户返回所述执行计划所需的第一时间耗费和第一资源耗费;解析所述SQL语句,读取查询条件、所有查询所用的数据表以及每张所述数据表的数据量和索引;调整所述查询条件中的非法查询条件,其中所述非法查询条件为干扰所述索引执行的查询条件;遍历调整后的查询条件的排序和所有查询所用的数据表的排序,重新获取调整后的SQL语句的执行计划,并向用户返回调整后的执行计划所需的第二时间耗费和第二资源耗费;分别比较所述第一时间耗费、第二时间耗费以及所述第一资源耗费、第二资源耗费,获取并返回时间耗费短且资源耗费少的执行计划。2.如权利要求1所述的SQL语句自动优化方法,其特征在于,所述获取输入的SQL语句的执行计划包括如下步骤:通过执行EXPLAINPLANFOR指令获取输入的SQL语句的执行计划。3.如权利要求1所述的SQL语句自动优化方法,其特征在于,所述解析所述SQL语句包括如下步骤:调用正则表达式解析所述SQL语句。4.如权利要求1所述的SQL语句自动优化方法,其特征在于,所述调整所述查询条件中的非法查询条件包括如下步骤:使用OR运算符将使用IN的查询条件分解为至少一个使用"="预算符的查询条件。5.如权利要求1所述的SQL语句自动优化方法,其特征在于,所述遍历调整后的查询条件的排序和所有查询所用的数据表的排序之前,还包括如下步骤:对调整后的查询条件和所有查询所用的数据表进行排序。6.一种SQL语句自动优化装置,其特征在于,所述S...

【专利技术属性】
技术研发人员:周罡王雪春
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1