SQL优化方法、装置、电子设备及存储介质与流程
游戏设备与电脑连接的优化方法 #生活技巧# #数码产品使用技巧# #游戏设备优化建议#
本发明涉及数字医疗和数据库,具体涉及一种sql优化方法、装置、电子设备及存储介质。
背景技术:
1、在医学应用场景中,sql作为一种数据库查询和程序设计语言,可用于查询医疗数据库中存储的医学影像、医疗文本等。sql调优技术包括多种,如利用决策模型对抽象语法树进行优化处理,再将优化后的抽象语法解析树转换得到优化后的sql语句;再如利用预设改写规则对sql进行优化改写得到优化后的sql,或者通过对多条sql语句之间的表和字段的依赖关系分析得到可以去除的无用表,从而实现sql优化。
2、然而,这些方法通常针对特定结构的sql进行替换优化,特别是针对物理表使用select*查询的情况及单条sql语句中带select*查询,无法实现带有“select*”查询的单条sql语句的优化,导致sql优化效率低下。
技术实现思路
1、鉴于以上内容,有必要提出一种sql优化方法、装置、电子设备及存储介质,根据依赖关系,识别出sql语句中的星号对应的第一字段集,实现了单条sql语句的优化,进而提高了sql语句的优化效率。
2、本发明的第一方面提供一种sql优化方法,所述方法包括:
3、接收单条第一sql语句;
4、识别所述第一sql语句中是否包含有第二sql语句,其中,所述第二sql语句中包含有通配符元素星号;
5、当所述第一sql语句中包含有所述第二sql语句时,对所述第一sql语句进行解析,基于解析结果生成第一抽象语法树;
6、分析所述第一抽象语法树中各个字段之间的依赖关系;
7、依据所述依赖关系,从所述第一抽象语法树中识别出所述第二sql语句中的星号对应的第一字段集;
8、对所述第一字段集中的每个第一字段进行格式转换,得到第二字段集;
9、基于所述第二字段集,对所述第二sql语句进行优化,得到优化后的sql语句。
10、可选地,所述依据所述依赖关系,从所述第一抽象语法树中识别出所述第二sql语句中的星号对应的第一字段集包括:
11、遍历所述第一抽象语法树,识别出所述第二sql语句中的星号所出现的层级;
12、依据所述依赖关系,提取出所述层级对应的上层字段集和下层字段集;
13、查询所述上层字段集,确定出所述星号对应的候选字段集;
14、对所述候选字段集和所述下层字段集进行关联校验,得到所述第二sql语句中的星号对应的第一字段集。
15、可选地,所述遍历所述第一抽象语法树,识别出所述第二sql语句中的星号所出现的层级包括:
16、遍历所述第一抽象语法树,匹配出第一关键字所出现的层级;
17、将所述第一关键字出现的层级确定为所述第二sql语句中的星号所出现的层级。
18、可选地,所述查询所述上层字段集,确定出所述星号对应的候选字段集包括:
19、查询所述上层字段集中第二关键字对应的字段集,将所述第二关键字对应的字段集确定为所述星号对应的候选字段集。
20、可选地,所述对所述候选字段集和所述下层字段集进行关联校验,得到所述第二sql语句中的星号对应的第一字段集包括:
21、将所述候选字段集中的每个候选字段与所述下层字段集中的字段进行匹配;
22、保留与所述下层字段集中的字段相匹配的候选字段,确定为所述第二sql语句中的星号对应的第一字段集。
23、可选地,所述识别出所述第二sql语句中的星号所出现的层级包括:
24、当识别出所述第二sql语句中的星号所出现的层级为最顶层时,将所述最顶层的下层字段集确定为所述第二sql语句中的星号对应的第一字段集;
25、当识别出所述第二sql语句中的星号所出现的层级为最低层时,将所述最低层的上层字段集确定为所述第二sql语句中的星号对应的第一字段集。
26、可选地,所述基于所述第二字段集,对所述第二sql语句进行优化,得到优化后的sql语句包括:
27、遍历所述第一抽象语法树中的第二sql语句中的星号,从所述第二字段集中获取所述星号对应的第二字段,并将所述星号替换为所述第二字段,得到第二抽象语法树;
28、对所述第二抽象语法树进行语义反解析,得到优化后的sql语句。
29、本发明的第二方面提供一种sql优化装置,所述装置包括:
30、接收模块,用于接收单条第一sql语句;
31、第一识别模块,用于识别所述第一sql语句中是否包含有第二sql语句,其中,所述第二sql语句中包含有通配符元素星号;
32、解析模块,用于当所述第一sql语句中包含有所述第二sql语句时,对所述第一sql语句进行解析,基于解析结果生成第一抽象语法树;
33、分析模块,用于分析所述第一抽象语法树中各个字段之间的依赖关系;
34、第二识别模块,用于依据所述依赖关系,从所述第一抽象语法树中识别出所述第二sql语句中的星号对应的第一字段集;
35、转换模块,用于对所述第一字段集中的每个第一字段进行格式转换,得到第二字段集;
36、优化模块,用于基于所述第二字段集,对所述第二sql语句进行优化,得到优化后的sql语句。
37、本发明的第三方面提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的sql优化方法。
38、本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的sql优化方法。
39、综上所述,本发明所述的sql优化方法、装置、电子设备及存储介质,能够推动智慧城市的建设,应用于智慧建筑、智慧安防、智慧社区、智慧生活、物联网等领域,通过接收单条第一sql语句,当所述第一sql语句中包含有所述第二sql语句时,对所述第一sql语句进行解析,基于解析结果生成第一抽象语法树,并分析所述第一抽象语法树中各个字段之间的依赖关系,通过依据字段之间的依赖关系,实现对“select*”查询中的实际字段分析,并替换成有依赖关系的对应字段,即第二字段,得到替换后不含“select*”查询的优化后的sql语句,实现了单条sql语句的优化,进而提高了sql语句的优化效率。
技术特征:
1.一种sql优化方法,其特征在于,所述方法包括:
2.如权利要求1所述的sql优化方法,其特征在于,所述依据所述依赖关系,从所述第一抽象语法树中识别出所述第二sql语句中的星号对应的第一字段集包括:
3.如权利要求2所述的sql优化方法,其特征在于,所述遍历所述第一抽象语法树,识别出所述第二sql语句中的星号所出现的层级包括:
4.如权利要求2所述的sql优化方法,其特征在于,所述查询所述上层字段集,确定出所述星号对应的候选字段集包括:
5.如权利要求2所述的sql优化方法,其特征在于,所述对所述候选字段集和所述下层字段集进行关联校验,得到所述第二sql语句中的星号对应的第一字段集包括:
6.如权利要求2所述的sql优化方法,其特征在于,所述识别出所述第二sql语句中的星号所出现的层级包括:
7.如权利要求1所述的sql优化方法,其特征在于,所述基于所述第二字段集,对所述第二sql语句进行优化,得到优化后的sql语句包括:
8.一种sql优化装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述的sql优化方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的sql优化方法。
技术总结
本发明涉及数字医疗和数据库技术领域,提供一种SQL优化方法、装置、电子设备及存储介质,所述方法包括:接收单条第一SQL语句;当第一SQL语句中包含有第二SQL语句时,对第一SQL语句进行解析,基于解析结果生成第一抽象语法树;分析第一抽象语法树中各个字段之间的依赖关系;依据依赖关系,从第一抽象语法树中识别出第二SQL语句中的星号对应的第一字段集;对第一字段集中的每个第一字段进行格式转换,得到第二字段集;根据第二字段集对第二SQL语句进行优化,得到优化后的SQL语句。本发明根据依赖关系,识别出SQL语句中的星号对应的第一字段集,实现单条SQL语句的优化,进而提高SQL语句的优化效率。
技术研发人员:李震川,李钊,李均
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:
技术公布日:2024/1/15
网址:SQL优化方法、装置、电子设备及存储介质与流程 https://www.yuejiaxmz.com/news/view/644501
相关内容
设备控制方法、装置、电子设备及存储介质与流程嵌入式设备优化方法及装置、电子设备和存储介质与流程
网络优化方法、装置、介质及电子设备与流程
电子设备的固件升级方法、装置、设备及存储介质与流程
结构优化方法、存储介质及电子设备.pdf
设备参数设置方法、设备及存储介质与流程
电子设备的升级方法、装置、电子设备和存储介质与流程
视频生成优化方法、装置、电子设备及可读存储介质制造方法及图纸
衣物去污方法、装置、衣物处理设备及存储介质与流程
设备控制方法、中转设备及存储介质与流程