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

技术编号:18658152 阅读:41 留言:0更新日期:2018-08-11 14:29
本申请公开了一种SQL自动优化方法、装置、计算机设备及存储介质。该方法包括:当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数;若当前系统性能指标参数超出预设的指标预警值,将当前脚本记录至指定路径;获取当前脚本的执行计划;若当前脚本的执行计划中缺少索引,自动添加索引至当前脚本;若当前脚本的索引失效,通过强制索引进行脚本修复,得到修复后脚本。该方法能够及时监控系统性能,并且能对影响系统性能很大关系的SQL脚本进行自动优化,实现快速发现性能问题并解决。

SQL automatic optimization method, device, computer equipment and storage medium

The application discloses a SQL automatic optimization method, device, computer equipment and storage medium. The method includes: when the current script is in execution state, collecting the current system performance index parameters according to the system performance index monitoring items set in the current script; if the current system performance index parameters exceed the preset index early warning value, recording the current script to the specified path; obtaining the execution plan of the current script; If the index of the current script is invalid, the script is repaired by forcing the index to get the repaired script. This method can monitor and control the system performance in time, and can optimize the SQL script which has a great influence on the system performance automatically, so as to find the performance problems quickly and solve them.

【技术实现步骤摘要】
SQL自动优化方法、装置、计算机设备及存储介质
本申请涉及数据库脚本
,尤其涉及一种SQL自动优化方法、装置、计算机设备及存储介质。
技术介绍
脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。在软件开发的过程中,开发人员所编写的脚本质量因人而异,低质量的脚本在执行时给系统带来了极大的性能隐患。一般是系统在脚本执行出现性能问题后,才会去排查和修复脚本所导致的问题。由于脚本众多,无法及时定位具体导致问题出现的脚本,导致了对低质量的脚本进行修改和优化的效率低下。
技术实现思路
本申请提供了一种SQL自动优化方法、装置、计算机设备及存储介质,旨在解决现有技术中众多脚本在执行时,无法及时定位具体导致问题出现的脚本,导致了对低质量的脚本进行修改和优化的效率低下的问题。第一方面,本申请提供了一种SQL自动优化方法,其包括:当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数;若当前系统性能指标参数超出预设的指标预警值,将当前脚本记录至指定路径;获取当前脚本的执行计划;若当前脚本的执行计划中缺少索引,自动添加索引至当前脚本;若当前脚本的索引失效,通过强制索引进行脚本修复,得到修复后脚本。第二方面,本申请提供了一种SQL自动优化装置,其包括:指标参数获取单元,用于当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数;超标脚本记录单元,用于若当前系统性能指标参数超出预设的指标预警值,将当前脚本记录至指定路径;执行计划获取单元,用于获取当前脚本的执行计划;索引自动添加单元,用于若当前脚本的执行计划中缺少索引,自动添加索引至当前脚本;脚本修复单元,用于若当前脚本的索引失效,通过强制索引进行脚本修复,得到修复后脚本。第三方面,本申请又提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请提供的任一项所述的SQL自动优化方法。第四方面,本申请还提供了一种存储介质,其中所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行本申请提供的任一项所述的SQL自动优化方法。本申请提供一种SQL自动优化方法、装置、计算机设备及存储介质。该方法在当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数;若当前系统性能指标参数超出预设的指标预警值,将当前脚本记录至指定路径;获取当前脚本的执行计划;若当前脚本的执行计划中缺少索引,自动添加索引至当前脚本;若当前脚本的索引失效,通过强制索引进行脚本修复,得到修复后脚本。该方法能够及时监控系统性能,并且能对影响系统性能很大关系的SQL脚本进行自动优化,实现快速发现性能问题并解决。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种SQL自动优化方法的示意流程图;图2是本申请实施例提供的一种SQL自动优化方法的子流程示意图;图3是本申请实施例提供的一种SQL自动优化方法的另一子流程示意图;图4为本申请实施例提供的一种SQL自动优化装置的示意性框图;图5为本申请实施例提供的一种SQL自动优化装置的子单元示意性框图;图6为本申请实施例提供的一种SQL自动优化装置的另一子单元示意性框图;图7为本申请实施例提供的一种计算机设备的示意性框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。请参阅图1,图1是本申请实施例提供的一种SQL自动优化方法的示意流程图。该方法应用于台式电脑、手提电脑、平板电脑等终端中。如图1所示,该方法包括步骤S101~S105。S101、当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数。在本实施例中,为了能在脚本执行的过程中实时获取当前脚本对系统性能的影响,则需要在当前脚本中增加系统性能指标监控项(系统性能指标监控项类似于参数获取语句,其作用是采集对应的指标参数,也即起到了实时监控获取系统对应的指标参数的作用),以监控系统的如下性能:吞吐量、执行性能、连接情况、缓冲池使用情况。即当前脚本中包括至少一条语句,语句的作用是采集当前系统性能指标参数(当前系统性能指标参数包括上述列举的参数,即吞吐量、执行性能、连接情况、缓冲池使用情况)。系统性能指标监控项起到了在脚本执行过程中实时监控系统性能指标的作用,避免了用户在脚本执行工程中需手动开启任务查看器才能查看系统性能指标的问题。在一实施例中,所述当前系统性能指标参数包括:吞吐量、SQL脚本执行性能参数、服务器连接情况参数、缓冲池使用情况参数。如图2所示,该步骤S101包括以下子步骤:S1011、通过内部计数器进行已执行语句的计数,得到吞吐量;S1012、通过统计出现错误的SQL语句数量,或统计超过可配置的长查询限制的查询数量,得到SQL脚本执行性能参数;S1013、通过统计当前开放的连接数量、当前运行的连接数量、由服务器错误导致的失败连接数、尝试与服务器进行连接结果失败的次数、或由最大连接数限制导致的失败连接数中任意一个,得到服务器连接情况参数;S1014、通过统计缓冲池中的总页数、缓冲池中已使用页数所占的比率、缓冲池发送的请求数、或缓冲池无法满足的请求数中任意一个,得到缓冲池使用情况参数。在本实施例中,监控吞吐量时,通过名称为Questions的内部计数器进行已执行语句(由客户端发出)计数;通过统计Com_select语句或Writes语句的总量来计算吞吐量;例如,通过以下指令,查询诸如Questions或Com_select服务器状态变量的值:SHOWGLOBALSTATUSLIKE"Questions"。监控SQL脚本执行性能参数时,主要是查询出现错误的SQL语句数量,及超过可配置的long_query_time限制的查询数量。上述两个指标都可从性能模式下的events_statements_summary_by_digest本文档来自技高网...

【技术保护点】
1.一种SQL自动优化方法,其特征在于,包括:当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数;若当前系统性能指标参数超出预设的指标预警值,将当前脚本记录至指定路径;获取当前脚本的执行计划;若当前脚本的执行计划中缺少索引,自动添加索引至当前脚本;若当前脚本的索引失效,通过强制索引进行脚本修复,得到修复后脚本。

【技术特征摘要】
1.一种SQL自动优化方法,其特征在于,包括:当前脚本为执行状态时,根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数;若当前系统性能指标参数超出预设的指标预警值,将当前脚本记录至指定路径;获取当前脚本的执行计划;若当前脚本的执行计划中缺少索引,自动添加索引至当前脚本;若当前脚本的索引失效,通过强制索引进行脚本修复,得到修复后脚本。2.根据权利要求1所述的SQL自动优化方法,其特征在于,所述当前系统性能指标参数包括:吞吐量、SQL脚本执行性能参数、服务器连接情况参数、缓冲池使用情况参数;所述根据当前脚本中所设置的系统性能指标监控项采集当前系统性能指标参数,包括:通过内部计数器进行已执行语句的计数,得到吞吐量;通过统计出现错误的SQL语句数量,或统计超过可配置的长查询限制的查询数量,得到SQL脚本执行性能参数;通过统计当前开放的连接数量、当前运行的连接数量、由服务器错误导致的失败连接数、尝试与服务器进行连接结果失败的次数、或由最大连接数限制导致的失败连接数中任意一个,得到服务器连接情况参数;通过统计缓冲池中的总页数、缓冲池中已使用页数所占的比率、缓冲池发送的请求数、或缓冲池无法满足的请求数中任意一个,得到缓冲池使用情况参数。3.根据权利要求2所述的SQL自动优化方法,其特征在于,所述若当前系统性能指标参数超出预设的指标预警值中,若在吞吐量、SQL脚本执行性能参数、服务器连接情况参数、或缓冲池使用情况参数中有至少一个超出对应预设的指标预警值,判定当前系统性能指标参数超出预设的指标预警值。4.根据权利要求1所述的SQL自动优化方法,其特征在于,所述若当前脚本的执行计划中缺少索引之前,包括:通过动态管理视图来判断当前脚本的执行计划是否缺乏索引。5.根据权利要求1所述的SQL自动优化方法,其特征在于,所述自动添加索引至当前脚本包括,通过fn_Index_CreateIndexName函数对当前脚本自动添加索引。6.根据权利要求1所述的SQL自动优化方法,其特征在于,所述通过强制索引进行脚本修复,得到修复后脚本,包括:获取所选定...

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

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

1