数据库执行语句优化方法、装置、设备、介质和程序产品制造方法及图纸

技术编号:33788231 阅读:85 留言:0更新日期:2022-06-12 14:44
本申请涉及一种数据库执行语句优化方法、装置、设备、介质和程序产品。所述方法包括:获取待处理数据库执行语句,所述待处理数据库执行语句携带有执行状态;根据所述执行状态获取语句优化器中对应的检测规则;根据所述检测规则对所述待处理数据库执行语句进行检测,以判断所述待处理数据库执行语句是否需要优化;当所述待处理数据库执行语句需要优化时,通过预先生成的优化规则对所述待处理数据库执行语句进行优化。采用本方法能够提高数据库执行语句的优化效率。句的优化效率。句的优化效率。

【技术实现步骤摘要】
数据库执行语句优化方法、装置、设备、介质和程序产品


[0001]本申请涉及人工智能
,特别是涉及一种数据库执行语句优化方法、装置、设备、介质和程序产品。

技术介绍

[0002]SQL即结构化查询语言(StructuredQueryLanguage),是一种特殊目的编程语言,主要用于存取数据以及查询、更新和管理关系数据库系统。在SQL系统的构建中,因为系统结构繁杂,参与的开发人员众多,难免会出现SQL语句的语法和性能问题。
[0003]传统的SQL优化需要特定开发人员逐条查看SQL语句,分析SQL语句是否合理,分析数据库性能设计是否达标,它有明显的缺点比如:
[0004](1)优化效率低:一个项目中有几千上万条SQL语句,几百上千张数据库表,通过人工来逐条分析优化,效率很慢。
[0005](2)代码维护难:设计数据库、写SQL和优化SQL的开发人员不同,就算有完整的文档资料,新人也很难接手维护。
[0006](3)优化不灵活:任何数据库框架修改必须重新优化,这个过程往往很长。
[0007](4)稳定性不高:人逐条优化很容易疏忽出现问题。

技术实现思路

[0008]基于此,有必要针对上述技术问题,提供一种能够提高数据库执行语句的优化效率的数据库执行语句优化方法、装置、设备、介质和程序产品。
[0009]第一方面,本申请提供了一种数据库执行语句优化方法,所述方法包括:
[0010]获取待处理数据库执行语句,所述待处理数据库执行语句携带有执行状态;
[0011]根据所述执行状态获取语句优化器中对应的检测规则;
[0012]根据所述检测规则对所述待处理数据库执行语句进行检测,以判断所述待处理数据库执行语句是否需要优化;
[0013]当所述待处理数据库执行语句需要优化时,通过预先生成的优化规则对所述待处理数据库执行语句进行优化。
[0014]在其中一个实施例中,所述根据所述检测规则对所述待处理数据库执行语句进行检测,以判断所述待处理数据库执行语句是否需要优化,包括:
[0015]当所述待处理数据库执行语句未执行时,根据语法规则判断所述待处理数据库执行语句是否需要优化;
[0016]当所述待处理数据库执行语句未执行时,统计所述待处理数据库执行语句的复杂度,并根据所述复杂度判断所述待处理数据库执行语句是否需要优化;
[0017]当所述待处理数据库执行语句已执行时,根据执行计划统计所述待处理数据库执行语句的执行效率,并根据所述执行效率判断所述待处理数据库执行语句是否需要优化。
[0018]在其中一个实施例中,所述通过预先生成的优化规则对所述待处理数据库执行语
句进行优化,包括以下至少一项:
[0019]将查询条件where语句后的定值放在所述待处理数据库执行语句的最上层;或
[0020]当所述待处理数据库执行语句存在子查询时,通过临时表或左关联替代所述子查询的结果;或
[0021]当存在特定语句时,通过对应的目标语句的分类数据替代;或
[0022]获取所述待处理数据库执行语句的执行场景,根据所述执行场景对所述待处理数据库执行语句进行优化;或
[0023]统计所述待处理数据库执行语句所对应的执行对象的特征,根据所述执行对象的特征将所述执行对象进行分表和分区处理。
[0024]在其中一个实施例中,所述获取待处理数据库执行语句,包括:
[0025]调用语句优化器生成待处理数据库执行语句。
[0026]在其中一个实施例中,所述方法还包括:
[0027]执行优化后的待处理数据库执行语句得到执行日志,并从所述执行日志中提取出错误信息;
[0028]当所述错误信息的出现次数到达预设次数时,根据所述错误信息生成新的优化规则。
[0029]在其中一个实施例中,所述方法还包括:
[0030]将所述待处理数据库执行语句和优化后的待处理数据库执行语句输出至日志中。
[0031]第二方面,本申请还提供了一种数据库执行语句优化装置,所述装置包括:
[0032]语句获取模块,用于获取待处理数据库执行语句,所述待处理数据库执行语句携带有执行状态;
[0033]规则获取模块,用于根据所述执行状态获取语句优化器中对应的检测规则;
[0034]检测模块,用于根据所述检测规则对所述待处理数据库执行语句进行检测,以判断所述待处理数据库执行语句是否需要优化;
[0035]优化模块,用于当所述待处理数据库执行语句需要优化时,通过预先生成的优化规则对所述待处理数据库执行语句进行优化。
[0036]第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
[0037]第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
[0038]第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
[0039]上述数据库执行语句优化方法、装置、设备、介质和程序产品,先根据待处理数据库执行语句的执行状态调用语句优化器中对应的检测规则,自动获取检测规则,无需人工查询然后检测,效率提高,后续再通过该检测规则对待处理数据库执行语句进行检测待处理数据库执行语句是否需要优化,若是需要优化,则根据对应的优化规则进行优化,自动化的检测以及优化方法相较于原有的人工检测方法和手动优化方法,提高效率。
附图说明
[0040]图1为一个实施例中数据库执行语句优化方法的应用环境图;
[0041]图2为一个实施例中数据库执行语句优化方法的流程示意图;
[0042]图3为一个实施例中数据库执行语句优化装置的结构框图;
[0043]图4为一个实施例中计算机设备的内部结构图。
具体实施方式
[0044]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0045]本申请实施例提供的数据库执行语句优化方法,可以应用于如图1所示的应用环境中。其中,处理终端102通过网络与研发终端104进行通信。数据存储系统可以存储处理终端102需要处理的数据。数据存储系统可以集成在处理终端102上,也可以放在云上或其他网络服务器上。
[0046]其中,处理终端102获取待处理数据库执行语句,待处理数据库执行语句携带有执行状态;根据执行状态获取语句优化器中对应的检测规则;根据检测规则对待处理数据库执行语句进行检测,以判断待处理数据库执行语句是否需要优化;当待处理数据库执行语句需要优化时,通过预先生成的优化规则对待处理数据库执行语句进行优化,自动化的检测以及优化方法,提高效率。...

【技术保护点】

【技术特征摘要】
1.一种数据库执行语句优化方法,其特征在于,所述方法包括:获取待处理数据库执行语句,所述待处理数据库执行语句携带有执行状态;根据所述执行状态获取语句优化器中对应的检测规则;根据所述检测规则对所述待处理数据库执行语句进行检测,以判断所述待处理数据库执行语句是否需要优化;当所述待处理数据库执行语句需要优化时,通过预先生成的优化规则对所述待处理数据库执行语句进行优化。2.根据权利要求1所述的方法,其特征在于,所述根据所述检测规则对所述待处理数据库执行语句进行检测,以判断所述待处理数据库执行语句是否需要优化,包括:当所述待处理数据库执行语句未执行时,根据语法规则判断所述待处理数据库执行语句是否需要优化;当所述待处理数据库执行语句未执行时,统计所述待处理数据库执行语句的复杂度,并根据所述复杂度判断所述待处理数据库执行语句是否需要优化;当所述待处理数据库执行语句已执行时,根据执行计划统计所述待处理数据库执行语句的执行效率,并根据所述执行效率判断所述待处理数据库执行语句是否需要优化。3.根据权利要求1所述的方法,其特征在于,所述通过预先生成的优化规则对所述待处理数据库执行语句进行优化,包括以下至少一项:将查询条件where语句后的定值放在所述待处理数据库执行语句的最上层;或当所述待处理数据库执行语句存在子查询时,通过临时表或左关联替代所述子查询的结果;或当存在特定语句时,通过对应的目标语句的分类数据替代;或获取所述待处理数据库执行语句的执行场景,根据所述执行场景对所述待处理数据库执行语句进行优化;或统计所述待处理数据库执行语句所对应的执行对象的特征,根据所述执行对象的特征将...

【专利技术属性】
技术研发人员:王元章
申请(专利权)人:平安商业保理有限公司
类型:发明
国别省市:

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

1