SQL语句性能检测方法及装置制造方法及图纸

技术编号:32106294 阅读:27 留言:0更新日期:2022-01-29 18:48
本发明专利技术公开了一种SQL语句性能检测方法及装置,涉及人工智能技术领域,其中该方法包括:接收用户输入的待检测SQL语句;对待检测SQL语句进行特征提取,确定待检测SQL语句的特征向量;将待检测SQL语句的特征向量输入性能检测模型,得到待检测SQL语句对应的性能检测结果;性能检测模型是根据带标记的SQL语句集和未标记的SQL语句集,对机器学习模型训练得到,性能检测模型包括第一层分类器和第二层分类器,第一层分类器用于对SQL语句的全局性能检测,第二层分类器用于对SQL语句的性能问题进行划分。本发明专利技术可以降低SQL语句的开发成本,提高SQL语句的开发效率。SQL语句的开发效率。SQL语句的开发效率。

【技术实现步骤摘要】
SQL语句性能检测方法及装置


[0001]本专利技术涉及人工智能
,尤其涉及一种SQL语句性能检测方法及装置。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]结构化查询语言(Structured Query Language,SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在构建应用系统的过程中,编写符合要求的SQL语句对于构建高性能应用系统非常重要。
[0004]目前,衡量一个SQL语句是否具备高性能的标准,是基于开发人员知识经验积累,对编写的SQL语句进行反复修改调优,直至其符合性能要求。这种方式的开发成本过高,开发效率也较低,且SQL语句性能检测结果也容易受到人为因素的影响。

技术实现思路

[0005]本专利技术实施例提供一种SQL语句性能检测方法,用以降低SQL语句的开发成本,提高SQL语句的开发效率,以及避免人为因素对SQL语句性能检测结果的影响,该方法包括:
[0006]接收用户输入的待检测SQL语句;
[0007]对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句的特征向量;
[0008]将所述待检测SQL语句的特征向量输入性能检测模型,得到所述待检测SQL语句对应的性能检测结果;
[0009]其中,所述性能检测模型是根据带标记的SQL语句集和未标记的SQL语句集,对机器学习模型训练得到。
[0010]本专利技术实施例还提供一种SQL语句性能检测装置,用以降低SQL语句的开发成本,提高SQL语句的开发效率,以及避免人为因素对SQL语句性能检测结果的影响,该装置包括:
[0011]接收模块,用于接收用户输入的待检测SQL语句;
[0012]特征提取模块,用于对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句的特征向量;
[0013]性能检测模块,用于将所述待检测SQL语句的特征向量输入性能检测模型,得到所述待检测SQL语句对应的性能检测结果;
[0014]其中,所述性能检测模型是根据带标记的SQL语句集和未标记的SQL语句集,对机器学习模型训练得到,所述性能检测模型包括第一层分类器和第二层分类器,所述第一层分类器用于对SQL语句的全局性能检测,所述第二层分类器用于对SQL语句的性能问题进行划分。
[0015]本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述SQL语句性能检测方法。
[0016]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述SQL语句性能检测方法。
[0017]本专利技术实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述SQL语句性能检测方法。
[0018]本专利技术实施例中,接收用户输入的待检测SQL语句;对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句的特征向量;将所述待检测SQL语句的特征向量输入性能检测模型,得到所述待检测SQL语句对应的性能检测结果;其中,所述性能检测模型是根据带标记的SQL语句集和未标记的SQL语句集,对机器学习模型训练得到。与现有技术中通过人工对编写的SQL语句进行反复修改调优的技术方案相比,本专利技术实施例通过将待检测SQL语句的特征向量输入性能检测模型,可以自动确定待检测SQL语句的性能检测结果,进而使得开发人员可以根据性能检测结果有针对性地对SQL语句进行优化和调整,不需要通过人工的方式进行反复修改调优,从而可以降低SQL语句的开发成本,提高SQL语句的开发效率,以及减少人为因素对SQL语句性能检测结果的影响。
附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
[0020]图1为本专利技术实施例中提供的一种SQL语句性能检测方法的流程图;
[0021]图2为本专利技术实施例中提供的又一种SQL语句性能检测方法的流程图;
[0022]图3为本专利技术实施例中提供的又一种SQL语句性能检测方法的流程图;
[0023]图4为本专利技术实施例中提供的一种用于SQL语句性能检测方法的性能检测模型训练方法的流程图;
[0024]图5为本专利技术实施例中提供的又一种用于SQL语句性能检测方法的性能检测模型训练方法的流程图;
[0025]图6为本专利技术实施例中提供的一种SQL语句性能检测装置的示意图;
[0026]图7为本专利技术实施例中提供的又一种SQL语句性能检测装置的示意图;。
具体实施方式
[0027]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。
[0028]在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中
的步骤顺序不作限定,可根据需要作适当调整。
[0029]术语解释:
[0030]结构化查询语言:Structured Query Language,简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0031]支持向量机:Support Vector Machine,简称SVM,是一种按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面。
[0032]经研究,SQL语句及数据库数据结构位于应用的最底层,编写符合要求的SQL语句对于构建高性能应用系统非常重要。如果SQL语句性能不佳,将不可避免地影响应用程序整体的性能,甚至可能导致应用程序异常、宕机。因此,在构建应用系统的过程中,需要对编写的SQL语句的性能进行检测,以发现可能存在的问题并进行进一步修改优化。但是,目前并没有广泛应用的已知程序自动分析结构化查询语言性能的方案,常用的方式是开发人员通过学习并长期积累SQL知识、经验,在开发过程中反复对SQL语句进行修改和调试,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SQL语句性能检测方法,其特征在于,包括:接收用户输入的待检测SQL语句;对所述待检测SQL语句进行特征提取,确定所述待检测SQL语句的特征向量;将所述待检测SQL语句的特征向量输入性能检测模型,得到所述待检测SQL语句对应的性能检测结果;其中,所述性能检测模型是根据带标记的SQL语句集和未标记的SQL语句集,对机器学习模型训练得到,所述性能检测模型包括第一层分类器和第二层分类器,所述第一层分类器用于对SQL语句的全局性能检测,所述第二层分类器用于对SQL语句的性能问题进行划分。2.如权利要求1所述的方法,其特征在于,所述待检测SQL语句的特征向量包括所述待检测SQL语句的语句描述特征向量、数据结构特征向量和数据元特征向量。3.如权利要求1所述的方法,其特征在于,将所述待检测SQL语句的特征向量输入性能检测模型,得到所述待检测SQL语句对应的性能检测结果,包括:将所述待检测SQL语句的特征向量输入性能检测模型的第一层分类器,确定所述待检测SQL语句是否存在全局性能问题,所述第一层分类器包括一个全局SVM二分类器,所述全局SVM二分类器包括全局性能检测规则;在所述待检测SQL语句存在全局性能问题的情况下,将所述待检测SQL语句的特征向量输入性能检测模型的第二层分类器,确定所述待检测SQL语句存在的性能问题的类别;根据所述待检测SQL语句存在的性能问题的类别,确定所述待检测SQL语句对应的性能检测结果。4.如权利要求3所述的方法,其特征在于,所述第二层分类器包括多个SVM二分类器,每一SVM二分类器包括一种性能检测规则,每一SVM二分类器的性能检测规则均不同;在所述待检测SQL语句存在全局性能问题的情况下,将所述待检测SQL语句的特征向量输入性能检测模型的第二层分类器,确定所述待检测SQL语句存在的性能问题的类别,包括:在所述待检测SQL语句存在全局性能问题的情况下,将所述待检测SQL语句的特征向量依次输入第二层分类器中的每一SVM二分类器,确定所述待检测SQL语句是否存在每一SVM二分类器的性能检测规则所对应的性能问题;根据所述待检测SQL语句存在的任意一个或多个SVM二分类器的性能检测规则所对应的性能问题,确定所述待检测SQL语句存在的性能问题的类别。5.如权利要求1所述的方法,其特征在于,将所述待检测SQL语句的特征向量输入性能检测模型,得到所述待检测SQL语句对应的性能检测结果之前,还包括:将带标记的SQL语句集和未标记的SQL语句集作为样本数据,构建训练集和测试集,所述带标记的SQL语句集包括标记存在性能问题的SQL语句和标记不存在问题的SQL语句;利用训练集对机器学习模型进行训练,确定性能检测模型;利用测试集对性能检测模型进行测试。6.如权利要求5所述的方法,其特征在于,利用训练集对机器学习模型进行训练,确定性能检测模型,包括:构建支持向量机SVM算法学习模型;
利用训练集对SVM算法学习模型进行训练,确定性能检测模型。7.一种SQL语句性能检测装置,其特征在于,包括:接收模块,用于接收用户输入的待检测SQL语句;...

【专利技术属性】
技术研发人员:郑小虎张顺张鹏鹏郑泽奇
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:

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

1