CN115062047A - 数据优化方法、装置、计算机设备及存储介质 - Google Patents
数据优化方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN115062047A CN115062047A CN202210817529.7A CN202210817529A CN115062047A CN 115062047 A CN115062047 A CN 115062047A CN 202210817529 A CN202210817529 A CN 202210817529A CN 115062047 A CN115062047 A CN 115062047A
- Authority
- CN
- China
- Prior art keywords
- sql statement
- sql
- strategy
- data
- complexity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据优化方法、装置、计算机设备及存储介质,方法包括对待优化SQL语句进行解析,得到SQL语句的词集合;其中,词集合包括对应SQL语句的多个关键词;获取关键词对应的字段数据;基于字段数据获取SQL语句的目标策略;基于关键词分析SQL语句的复杂度;基于复杂度及目标策略返回SQL语句的优化结果。本发明无需在指定文本编辑器中编写SQL语句,通过解析SQL语句获取对应目标策略,通过策略优化提高SQL语句的查询效率,支持批量SQL语句优化,且可对于简单SQL语句可直接输出优化后的SQL语句,复杂SQL语句则输出目标策略以编业务人员进行改写和优化。
Description
技术领域
本发明涉及数据处理的技术领域,尤其涉及一种数据优化方法、装置、计算机设备及存储介质。
背景技术
结构化查询语言(Structured Query Language,SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在项目开发和数据库运维过程中,为了提升程序性能,降低线上故障率,经常需要对SQL进行优化。
在现有技术中,可以采用开源产品如EverSQL、Soar等对SQL进行优化,但上述开源产品通常需将SQL编写在指定编辑器中,难以对批量待优化SQL进行查询优化,且无法对SQL中相关字段是否建立索引进行检测。同时,现有的SQL监控系统,仅支持监控SQL的执行时间、执行语句、风险提示等,不支持对SQL的优化功能。
发明内容
本发明的目的是提供一种数据优化方法、装置、计算机设备及存储介质,用于解决现有技术存在的问题。
为实现上述目的,本发明提供一种数据优化方法,包括:
对待优化SQL语句进行解析,得到所述SQL语句的词集合;其中,所述词集合包括对应所述SQL语句的多个关键词;
获取所述关键词对应的字段数据;
基于所述字段数据获取所述SQL语句的目标策略;
基于所述关键词分析所述SQL语句的复杂度;
基于所述复杂度及目标策略返回所述SQL语句的优化结果。
进一步优选地,所述对待优化SQL语句进行解析,得到所述SQL语句的词集合,包括:
调用预设的解析工具对所述SQL语句进行分词解析,得到分词文件;其中,所述分词文件包括关键词和非关键词;
基于所述关键词生成所述SQL语句的词集合。
进一步优选地,所述基于所述字段数据获取所述SQL语句的目标策略,包括:
提取所述字段数据的请求参数,基于所述请求参数在预设的策略库中查询对应的策略集合;其中,所述策略库中预先存储有各个请求参数以及各个请求参数对应的策略集合的对应关系;
从所述策略集合中查询与所述SQL语句对应的目标策略。
进一步优选地,所述策略集合包括多个策略例句以及多个策略例句对应的候选策略;
所述从所述策略集合中查询与所述SQL语句对应的目标策略,包括:
获取所述SQL语句与多个所述策略例句的相似度;
基于所述相似度选择对应的所述策略例句的候选策略作为目标策略。
进一步优选地,所述获取所述SQL语句与多个所述策略例句的相似度,包括:
将所述SQL语句及策略例句分别转换为第一向量和第二向量;
计算所述第一向量与第二向量的余弦距离;
基于所述余弦距离对应确定所述SQL语句与策略例句的相似度。
进一步优选地,所述基于所述关键词分析所述SQL语句的复杂度,包括:
对多个所述关键词的进行评分;
基于所述评分结果对所述SQL语句的复杂度进行分析。
进一步优选地,所述复杂度包括简单和复杂;
所述基于所述复杂度及目标策略返回所述SQL语句的优化结果,包括:
当所述复杂度为简单时,基于所述目标策略对所述SQL语句进行优化后返回优化后的SQL语句;
当所述复杂度为复杂时,返回所述目标策略。
为实现上述目的,本发明还提供一种数据优化装置,包括:
解析模块,用于对待优化SQL语句进行解析,得到所述SQL语句的词集合;其中,所述词集合包括对应所述SQL语句的多个关键词;
第一获取模块,用于获取所述关键词对应的字段数据;
第二获取模块,用于基于所述字段数据获取所述SQL语句的目标策略;
分析模块,用于基于所述关键词分析所述SQL语句的复杂度;
返回模块,用于基于所述复杂度及目标策略返回所述SQL语句的优化结果。
为实现上述目的,本发明还提供一种计算机设备,包括:
存储器,存储至少有计算机程序;及
处理器,执行所述存储器中存储的计算机程序以实现上述任意一项所述的数据优化方法。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时以实现上述任意一项所述的数据优化方法。
上述技术方案的有益效果:
本发明提供的数据优化方法、装置、计算机设备及存储介质,通过对待优化SQL语句进行解析,得到所述SQL语句的词集合;所述词集合包括对应所述SQL语句的多个关键词;获取所述关键词对应的字段数据;基于所述字段数据获取所述SQL语句的目标策略;基于所述关键词分析所述SQL语句的复杂度;基于所述复杂度及目标策略返回所述SQL语句的优化结果。本发明无需在指定文本编辑器中编写SQL语句,通过解析SQL语句获取对应目标策略,通过策略优化提高SQL语句的查询效率,支持批量SQL语句优化,且可对于简单SQL语句可直接输出优化后的SQL语句,复杂SQL语句则输出目标策略以编业务人员进行改写和优化。
附图说明
图1为本发明实施例一数据优化方法的流程示意图;
图2为本发明实施例二数据优化装置的功能模块图;
图3为本发明实施例三数据优化方法的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,为本实施例一数据优化方法的流程示意图,从图中可以看出,包括S100-500步骤,具体如下:
S100:对待优化SQL语句进行解析,得到所述SQL语句的词集合;所述词集合包括对应所述SQL语句的多个关键词。
在示例性的实施例中,调用预设的解析工具对所述SQL语句进行分词解析,得到分词文件,所述分词文件包括关键词和非关键词;基于所述关键词生成所述SQL语句的词集合。具体的,调用解析工具对SQL语句进行分析解析可以理解为通过解析工具将SQL语句转化为一个一个的标记(Token),Token包含关键词(Keyword,也称symbol)和非关键词,通过关键词与非关键词生成对应SQL语句的分词文件。例如,SQL语句为:select username fromuserinfo,通过解析工具进行分析解析后,分词文件中会包括4个Token,2个关键词:select和from,2个非关键词:username和userinfo,同时通过2个关键词select和from生成SQL语句的词集合。
S200:获取所述关键词对应的字段数据。
在示例性的实施例中,字段数据可以理解为关键词对应的非关键词,在上述举例中SQL语句为:select username from userinfo,2个关键词为select和from,2个非关键词为username和userinfo,当关键词为select时,select对应的字段数据为username,当关键词为from时,from对应的字段数据为userinfo。进一步的,字段数据也可以包括有关键词和非关键词,例如当SQL语句为嵌套查询(子查询)方式时,如SQL语句为:select*from empwhere sal<(select avg(sal)from emp),词集合包括的关键词有:2个select,2个from,1个where,当关键词为where时,where对应的字段数据为sal<(select avg(sal)from emp)。
S300:基于所述字段数据获取所述SQL语句的目标策略。
在示例性的实施例中,提取所述字段数据的请求参数,基于所述请求参数在预设的策略库中查询对应的策略集合;其中,所述策略库中预先存储有各个请求参数以及各个请求参数对应的策略集合的对应关系,所述策略集合包括多个策略例句以及多个策略例句对应的候选策略。
具体的,请求参数可以理解为用于表征对应字段数据是否需要需优化的检测参数,如SQL语句为:select username from userinfo,该SQL语句对应的查询定义为:从userinfo(用户信息)中查询username(用户名),对应的请求参数可为username。其中,请求参数可以包括多个,如SQL语句为:select*from emp where sal<(select avg(sal)fromemp),该SQL语句对应的查询定义为:从emp(employee,员工信息表)中查询sal(salary,薪资)低于avg(sal)(平均薪资)的员工信息,则对应的请求参数包括*、sal、avg(sal)。
需特别说明的是,不同的SQL语句,对应的请求参数不同,可以理解为请求参数基于SQL语句的查询需求和查询定义进行设定,查询需求用于表征在编写SQL语句前的需求,查询定义用于表征SQL语句编写后的定义。如查询需求为从B中查询A,对应的高效查询SQL语句应为select A from B,A为具体的查询结果,B为查询数据库;当输入的第一SQL语句为select*from B时,查询定义为从B中查询所有数据(所有数据中包括A),该第一SQL语句并无错误即查询时系统不会报错,正常输出查询结果,但由于查询所有数据导致查询流量大从而可能使查询缓慢,且输出的查询结果为B中所有数据,需从所有数据再一遍查询A后才满足查询需求,查询效率低;当输入的第二SQL语句为select A from B,查询定义为从B中查询A;可直接从查询结果中得到A,且查询数据流量较小,可有效提高查询效率。可以理解为,第一SQL语句即为待优化的SQL语句,基于查询需求可知优化后的SQL语句为第二SQL语句,即通过select后的字段数据作为请求参数时,可提高在查询效率和结果上的优化。
另外的,基于上述举例,查询需求为通过表1、表2、表3中相关数据关联后得到A数据,则对应高效查询的SQL语句的关键词from后字段数据应应对表1、表2、表3添加相关关联或限制关系,进而减少查询时的检索数据总量,提高查询效率;当输入的第三SQL语句为select A from表1表2表3时,查询定义与上述查询需求相同,同理该第三SQL语句并无错误即查询时系统不会报错,可正常输出查询结果,但由于A的结果为从表1、表2、表3分别查询的数据,使得查询结果的检索数据总量相当于笛卡尔乘积,即表1数据量*表2数据量*表3数据量,数据A只是一条数据记录的某一个字段值,可知上述第三SQL语句的查询效率较低,影响查询质量;对应该段举例查询需求当输入的第四SQL语句的关键词from后的字段数据对表1、表2、表3添加相关关联或限制关系时,可有效避免笛卡尔乘积现象出现,减少查询结果的检索数据总量,进而有效提高查询效率,提高SQL语句的查询质量。可以理解为,第三SQL语句即为待优化的SQL语句,基于查询需求可知优化后的SQL语句为第四SQL语句,即通过from后的字段数据作为请求参数时,也可提高在查询效率和质量上的优化。
需特别说明的是,请求参数可基于查询需求或定义进行设定,或也可基于业务人员的业务需求进行自定义设定,如仅选择select或from或其他关键词对应字段数据作为请求参数,具体不作限制。
在进一步的实施例中,基于上述举例,当A或B或*作为请求参数在预设的策略库中查询对应的目标策略时,由于A或B或*在不同的SQL语句中表征的查询定义不同,如select*from B表征从B中查询所有数据(*),而select*from emp where sal<(select avg(sal)from emp)表征从emp中查询全部(*)sal,再查询从低于avg(sal)的员工信息,同时基于从B中查询A的查询需求可知select*from B的SQL语句为待优化的SQL语句,基于从emp员工信息表中查询薪资低于平均薪资的员工信息的查询需求可知select*from emp where sal<(select avg(sal)from emp)为无需优化的SQL语句,即相同请求参数,基于不同查询需求及SQL语句结构对应的目标策略不同。
需特别说明的是,上述候选策略或目标策略可包括系统默认优化策略及自定义策略,如基于从B中查询A的查询需求编写后的SQL语句为select*from B时,应该检测对应字段数据是否为对应需求的查询字段,若否,作为目标策略为将对应字段数据替换为具体字段,如上述举例则输出的目标策略应为将*替换为A;又如当SQL语句中包括join、union和where等关键词,或SQL语句查询数据量较大较多时,应检查SQL语句上关键词对应的字段数据上是否添加有索引,若无,则目标策略为对应字段数据添加索引。
优选地,对应请求参数在策略库中预先设有多个候选策略,不同候选策略对应设有策略例句,通过策略例句使SQL语句与候选策略(目标策略)匹配,通过候选策略对SQL语句进行优化。具体的,可通过获取所述SQL语句与多个策略例句的相似度,基于所述相似度选择所述相似度对应的所述策略例句的候选策略作为目标策略。其中,策略例句可以理解为与待优化SQL语句的结构相似或相同的例句,如策略例句可以是与待优化SQL语句包括相同的关键词,各个关键词字段位置相同等等。
在示例性的实施例中,将所述SQL语句及策略例句分别转换为第一向量和第二向量;计算所述第一向量与第二向量的余弦距离;基于所述余弦距离对应确定所述SQL语句及策略例句的相似度。所述余弦距离用于表征向量空间中两个向量夹角的余弦值,利用余弦值作为衡量两个个体间差异的大小的度量,且余弦值越接近1,就表明夹角越接近0度,说明两个向量相似值越高。
S400:基于所述关键词分析所述SQL语句的复杂度。
在示例性的实施例中,对多个所述关键词的进行评分;基于所述评分结果对所述SQL语句的复杂度进行分析。优选地,评分通过各个关键词的查询定义、出现次数和关联关系等确定,如一个SQL语句中仅包括select和from,则select评分为0分,from评分为0分,当一个SQL语句中包括2个select时,select评分为1分,对应的还可设定关键词join为2分、union为2分、group by为3分,同时当一个SQL语句中包括有两个union时,union评分为3分等,具体可基于查询定义、出现次数和关联关系等对关键词进行频次,或也可基于业务人员需求进行自定设定,具体不作限制。
进一步优选地,可通过评分结果大于或等于预设阈值设定对应SQL语句为复杂,未超过小于预设阈值设定对应SQL语句为简单,或也可通过评分结果区间范围限定对SQL语句的复杂度进行分析,如0到15的评分结果为简单,大于15则为复杂,具体不作限制。
S500:基于所述复杂度及目标策略返回所述SQL语句的优化结果。
在示例性的实施例中,所述复杂度包括简单和复杂;当所述复杂度为简单时,基于所述目标策略对所述SQL语句进行优化后,返回优化后的SQL语句;当所述复杂度为复杂时,由于无法直接对复杂SQL语句进行直接改写,直接返回所述目标策略以便业务人员进行改写和优化。
本发明无需在指定文本编辑器中编写SQL语句,通过解析SQL语句获取对应目标策略,通过策略优化提高SQL语句的查询效率,支持批量SQL语句优化,且可对于简单SQL语句可直接输出优化后的SQL语句,复杂SQL语句则输出目标策略以编业务人员进行改写和优化。
实施例二
如图2所示,为本实施例二的数据优化装置的功能模块图。
所述数据优化装置3包括解析模块31、第一获取模块32、第二获取模块33、分析模块34及返回模块35。本发明所称的模块是指一种能够被处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
解析模块31用于对待优化SQL语句进行解析,得到所述SQL语句的词集合;其中,所述词集合包括对应所述SQL语句的多个关键词。
在示例性的实施例中,调用预设的解析工具对所述SQL语句进行分词解析,得到分词文件;其中,所述分词文件包括关键词和非关键词;基于所述关键词生成所述SQL语句的词集合。其中,调用解析工具对SQL语句进行分析解析可以理解为通过解析工具将SQL语句转化为一个一个的标记(Token),Token包含关键词(Keyword,也称symbol)和非关键词,通过关键词与非关键词生成对应SQL语句的分词文件。
第一获取模块32用于获取所述关键词对应的字段数据。
在示例性的实施例中,字段数据可以理解为关键词对应的非关键词,如SQL语句为:select username from userinfo,则2个关键词为select和from,2个非关键词为username和userinfo,当关键词为select时,select对应的字段数据为username,当关键词为from时,from对应的字段数据为userinfo。
第二获取模块33用于基于所述字段数据获取所述SQL语句的目标策略。
在示例性的实施例中,提取所述字段数据的请求参数,基于所述请求参数在预设的策略库中查询对应的策略集合;其中,所述策略库中预先存储有各个请求参数以及各个请求参数对应的策略集合的对应关系;将所述SQL语句及策略例句分别转换为第一向量和第二向量;计算所述第一向量与第二向量的余弦距离;基于所述余弦距离对应确定所述SQL语句与策略例句的相似度;基于所述相似度选择对应的所述策略例句的候选策略作为目标策略。
需特别说明的是,不同的SQL语句,对应的请求参数不同,可以理解为请求参数基于SQL语句的查询需求和查询定义进行设定,查询需求用于表征在编写SQL语句前的需求,查询定义用于表征SQL语句编写后的定义,如如查询需求为从B中查询A,对应的高效查询SQL语句应为select A from B,A为具体的查询结果,B为查询数据库;当输入的第一SQL语句为select*from B时,可通过select后的字段数据作为请求参数时,可提高在查询效率和结果上的优化;又如查询需求为通过表1、表2、表3中相关数据关联后得到A数据,则对应高效查询的SQL语句的关键词from后字段数据应应对表1、表2、表3添加相关关联或限制关系,进而减少查询时的检索数据总量,提高查询效率;当输入的第三SQL语句为select A from表1表2表3时,可通过from后的字段数据作为请求参数时,也可提高在查询效率和质量上的优化。另外的,请求参数可基于查询需求或定义进行设定,或也可基于业务人员的业务需求进行自定义设定,如仅选择select或from或其他关键词对应字段数据作为请求参数,具体不作限制。
分析模块34用于基于所述关键词分析所述SQL语句的复杂度。
在示例性的实施例中,对多个所述关键词的进行评分;基于所述评分结果对所述SQL语句的复杂度进行分析。优选地,评分通过各个关键词的查询定义、出现次数和关联关系等确定,如一个SQL语句中仅包括select和from,则select评分为0分,from评分为0分,当一个SQL语句中包括2个select时,select评分为1分,对应的还可设定关键词join为2分、union为2分、group by为3分,同时当一个SQL语句中包括有两个union时,union评分为3分等,具体可基于查询定义、出现次数和关联关系等对关键词进行频次,或也可基于业务人员需求进行自定设定,具体不作限制。
返回模块35用于基于所述复杂度及目标策略返回所述SQL语句的优化结果。
在示例性的实施例中,所述复杂度包括简单和复杂;当所述复杂度为简单时,基于所述目标策略对所述SQL语句进行优化后返回优化后的SQL语句;当所述复杂度为复杂时,返回所述目标策略。
实施例三
如图3所示,为本实施例三数据优化方法的计算机设备的结构示意图。
在示例性的实施例中,所述计算机设备4包括但不限于:存储器41、处理器42以及存储在所述存储器41中并可在所述处理器上运行的计算机程序,例如数据优化程序。本领域技术人员可以理解,所述示意图仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所述存储器41至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器41可以是计算机设备的内部存储模块,例如该计算机设备的硬盘或内存。在另一些实施例中,存储器41也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器41还可以既包括计算机设备的内部存储模块也包括其外部存储设备。本实施例中,存储器41通常用于存储安装于计算机设备的操作系统和各类应用软件。此外,存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42可以是中央处理模块(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器42是所述计算机设备的运算核心和控制中心,利用各种接口和线路连接整个计算机设备的各个部分,及执行所述计算机设备的操作系统以及安装的各类应用程序、程序代码等。
所述处理器42执行所述计算机设备的操作系统以及安装的各类应用程序。所述处理器42执行所述应用程序以实现上述各个数据优化方法实施例中的步骤,例如图1所示的步骤S100、S200、S300、S400、S500。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储实现所述数据优化方法的计算机程序,被处理器42执行时实现实施例一或二或三的数据优化方法。
进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据优化方法,其特征在于,包括:
对待优化SQL语句进行解析,得到所述SQL语句的词集合;其中,所述词集合包括对应所述SQL语句的多个关键词;
获取所述关键词对应的字段数据;
基于所述字段数据获取所述SQL语句的目标策略;
基于所述关键词分析所述SQL语句的复杂度;
基于所述复杂度及目标策略返回所述SQL语句的优化结果。
2.根据权利要求1所述的数据优化方法,其特征在于,所述对待优化SQL语句进行解析,得到所述SQL语句的词集合,包括:
调用预设的解析工具对所述SQL语句进行分词解析,得到分词文件;其中,所述分词文件包括关键词和非关键词;
基于所述关键词生成所述SQL语句的词集合。
3.根据权利要求1所述的数据优化方法,其特征在于,所述基于所述字段数据获取所述SQL语句的目标策略,包括:
提取所述字段数据的请求参数,基于所述请求参数在预设的策略库中查询对应的策略集合;其中,所述策略库中预先存储有各个请求参数以及各个请求参数对应的策略集合的对应关系;
从所述策略集合中查询与所述SQL语句对应的目标策略。
4.根据权利要求3所述的数据优化方法,其特征在于,所述策略集合包括多个策略例句以及多个策略例句对应的候选策略;
所述从所述策略集合中查询与所述SQL语句对应的目标策略,包括:
获取所述SQL语句与多个所述策略例句的相似度;
基于所述相似度选择对应的所述策略例句的候选策略作为目标策略。
5.根据权利要求4所述的数据优化方法,其特征在于,所述获取所述SQL语句与多个所述策略例句的相似度,包括:
将所述SQL语句及策略例句分别转换为第一向量和第二向量;
计算所述第一向量与第二向量的余弦距离;
基于所述余弦距离对应确定所述SQL语句与策略例句的相似度。
6.根据权利要求1所述的数据优化方法,其特征在于,所述基于所述关键词分析所述SQL语句的复杂度,包括:
对多个所述关键词的进行评分;
基于所述评分结果对所述SQL语句的复杂度进行分析。
7.根据权利要求1所述的数据优化方法,其特征在于,所述复杂度包括简单和复杂;
所述基于所述复杂度及目标策略返回所述SQL语句的优化结果,包括:
当所述复杂度为简单时,基于所述目标策略对所述SQL语句进行优化后返回优化后的SQL语句;
当所述复杂度为复杂时,返回所述目标策略。
8.一种数据优化装置,其特征在于,包括:
解析模块,用于对待优化SQL语句进行解析,得到所述SQL语句的词集合;其中,所述词集合包括对应所述SQL语句的多个关键词;
第一获取模块,用于获取所述关键词对应的字段数据;
第二获取模块,用于基于所述字段数据获取所述SQL语句的目标策略;
分析模块,用于基于所述关键词分析所述SQL语句的复杂度;
返回模块,用于基于所述复杂度及目标策略返回所述SQL语句的优化结果。
9.一种计算机设备,其特征在于,包括:
存储器,存储至少有计算机程序;及
处理器,执行所述存储器中存储的计算机程序以实现如权利要求1至7中任意一项所述的数据优化方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现如权利要求1至7任意一项所述的数据优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210817529.7A CN115062047A (zh) | 2022-07-12 | 2022-07-12 | 数据优化方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210817529.7A CN115062047A (zh) | 2022-07-12 | 2022-07-12 | 数据优化方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115062047A true CN115062047A (zh) | 2022-09-16 |
Family
ID=83207177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210817529.7A Pending CN115062047A (zh) | 2022-07-12 | 2022-07-12 | 数据优化方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115062047A (zh) |
-
2022
- 2022-07-12 CN CN202210817529.7A patent/CN115062047A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522816B (zh) | 基于数据库引擎的数据处理方法、装置、终端及介质 | |
US10095780B2 (en) | Automatically mining patterns for rule based data standardization systems | |
US10438133B2 (en) | Spend data enrichment and classification | |
US20080162455A1 (en) | Determination of document similarity | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US20070239742A1 (en) | Determining data elements in heterogeneous schema definitions for possible mapping | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
CN110597844B (zh) | 异构数据库数据统一访问方法及相关设备 | |
CN112860727B (zh) | 基于大数据查询引擎的数据查询方法、装置、设备及介质 | |
CN113342976B (zh) | 一种自动采集处理数据的方法、装置、存储介质及设备 | |
CN111782763A (zh) | 基于语音语义的信息检索方法、及其相关设备 | |
CN112052138A (zh) | 业务数据质量检测方法、装置、计算机设备及存储介质 | |
US20210319039A1 (en) | Extraction of a nested hierarchical structure from text data in an unstructured version of a document | |
US8745062B2 (en) | Systems, methods, and computer program products for fast and scalable proximal search for search queries | |
CN110276009B (zh) | 一种联想词的推荐方法、装置、电子设备及存储介质 | |
US8914378B2 (en) | Specification document check method, program, and system | |
CN111553556A (zh) | 业务数据分析方法、装置、计算机设备及存储介质 | |
CN108710662B (zh) | 语言转换方法和装置、存储介质、数据查询系统和方法 | |
CN112149387A (zh) | 财务数据的可视化方法、装置、计算机设备及存储介质 | |
CN114722137A (zh) | 基于敏感数据识别的安全策略配置方法、装置及电子设备 | |
CN112328805A (zh) | 基于nlp的漏洞描述信息与数据库表的实体映射方法 | |
Ko et al. | Natural language processing–driven model to extract contract change reasons and altered work items for advanced retrieval of change orders | |
Talburt et al. | A practical guide to entity resolution with OYSTER | |
CN116383412B (zh) | 基于知识图谱的功能点扩增方法和系统 | |
Kaur et al. | Assessing lexical similarity between short sentences of source code based on granularity |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |