结构化查询语句分析方法、装置、设备以及存储介质与流程

文档序号:36910159发布日期:2024-02-02 21:39阅读:24来源:国知局
结构化查询语句分析方法、装置、设备以及存储介质与流程

本发明涉及计算机,尤其涉及一种结构化查询语句分析方法、装置、设备以及存储介质。


背景技术:

1、结构化查询语言(structured query language)简称sql,是一种用于访问和处理数据库数据的编程语言,目前已成为操作关系型数据库的标准语言。关系型数据库是目前应用最为广泛的一类数据库,大量应用使用sql进行数据控制与查询,sql语句的编写质量成为影响应用性能的重要因素。目前市面上大部分关系型数据库产品都内置了相关性能分析工具比如mysql的慢查询日志、profile命令、explain命令和innotop命令行监控工具等。

2、但以上工具在使用存在各种局限,一是目前市面上关系型数据库产品种类繁多,不同产品在实现上存在差异,多数性能分析工具是由数据库产品自身提供,不能应用于其他数据库,支持的产品比较有限,此外,由于多数sql性能分析工具直接由数据库本身提供,在使用过程中难免会与业务流程耦合,可能会侵入业务代码,增加维护成本,维护成本较高,并且,针对不同产品,需要使用不同工具来处理不同的数据库的sql语句,不同工具的操作方式和提供的功能可能差异较大,在不同工具间进行切换学习和维护成本较高,还有,现有工具多数都是通过命令进行sql分析,无法可视化操作,结果呈现也是文本内容,无法直观地梳理分析结果,而这些问题,又都在不同程度上导致了开发者在进行sql相关开发时的开发效率低下的问题。

3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现思路

1、本发明的主要目的在于提供一种结构化查询语句分析方法、装置、设备以及存储介质,旨在通过结构化查询语句解析为开发人员提供sql语句优化方向从而提高开发人员进行sql相关开发的效率。

2、为实现上述目的,本发明提供一种结构化查询语句分析方法、装置、设备以及存储介质,包括:

3、将预先获取的标准化结构化查询语言sql语句拆解为可分类标志词条;

4、对所述可分类标志词条进行语法规则解析,生成抽象语法树;

5、基于预设的分析策略对所述抽象语法树进行分析,得到所述标准化sql语句的分析结果。

6、可选地,所述将预先获取的标准化结构化查询语言sql语句拆解为可分类标志词条的步骤之前还包括:

7、接收数据源传入的sql源语句;

8、对所述sql源语句进行语句预检;

9、若所述预检通过,则通过所述规则引擎对所述sql语句进行语句清洗,得到标准化sql语句。

10、可选地,所述接收数据源传入的sql语句的步骤包括:

11、若所述数据源为映射器文件,则基于所述映射器文件的元素类型将所述映射器文件解析为sql语句。

12、可选地,所述可分类标志词条包括终结符词条和非终结符词条,所述对所述可分类标志词条进行语法规则解析,生成抽象语法树的步骤包括:

13、根据所述sql语句的执行顺序对可分类标志词条进行语法规则解析,若当前解析的可分类标志词条为终结符词条,则基于所述终结符词条生成语法树终结节点;

14、若当前解析的可分类标志词条为非终结符词条,则基于所述非终结符词条生成语法树叶节点。

15、可选地,所述通过预设的分析策略对所述抽象语法树进行分析,得到所述标准化sql语句的分析结果的步骤包括:

16、通过预设的性能分析策略对所述抽象语法树进行性能分析,得到所述标准化语句的性能分析结果;

17、通过预设的执行分析策略对所述抽象语法树进行执行分析,得到所述标准化sql语句的执行分析结果。

18、可选地,所述抽象语法树包括若干子树,所述通过预设的性能分析策略对所述抽象语法树进行性能分析,得到所述标准化sql语句的性能分析结果的步骤包括:

19、对所述抽象语法树的若干子树进行语法校验,若所述语法校验不通过,则输出错误信息;

20、若所述语法校验通过,则根据预设的性能分析策略匹配所述抽象语法树的待优化点;

21、基于所述待优化点得到所述标准化sql语句的性能分析结果。

22、可选地,所述通过预设的执行分析策略对所述抽象语法树进行执行分析,得到所述标准化sql语句的执行分析结果的步骤包括:

23、通过预设的执行分析策略判断所述抽象语法树对应的sql语句类型;

24、扫描所述抽象语法树的所有节点,确定所述抽象语法树对应的sql语句的执行目标和索引建立点;

25、基于所述sql语句类型、执行目标、索引建立点得到所述标准化sql语句的执行分析结果。

26、此外,为实现上述目的,本发明还提供一种结构化查询语句分析装置,所述结构化查询语句分析装置包括:

27、拆解模块,用于将预先获取的标准化结构化查询语言sql语句拆解为可分类标志词条;

28、生成模块,用于对所述可分类标志词条进行语法规则解析,生成抽象语法树;

29、分析模块,用于基于预设的分析策略对所述抽象语法树进行分析,得到所述标准化sql语句的分析结果。

30、此外,为实现上述目的,本发明还提供一种结构化查询语句分析设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的结构化查询语句分析程序,所述结构化查询语句分析程序配置为实现如上所述的结构化查询语句分析方法的步骤。

31、此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有结构化查询语句分析程序,所述结构化查询语句分析程序被处理器执行时实现如上所述的结构化查询语句分析方法的步骤。

32、本发明提出的结构化查询语句分析方法、装置、设备以及存储介质,通过将预先获取的标准化结构化查询语言sql语句拆解为可分类标志词条,对所述可分类标志词条进行语法规则解析,生成抽象语法树,基于预设的分析策略对所述抽象语法树进行分析,得到所述标准化sql语句的分析结果,通过上述方式对sql语句进行全方位、多角度的分析并输出分析结果使开发人员更高效的处理sql开发中的各自问题,从而提高sql相关开发效率。



技术特征:

1.一种结构化查询语句分析方法,其特征在于,所述方法包括以下步骤:

2.如权利要求1所述的结构化查询语句分析方法,其特征在于,所述将预先获取的标准化结构化查询语言sql语句拆解为可分类标志词条的步骤之前还包括:

3.如权利要求2所述的结构化查询语句分析方法,其特征在于,所述接收数据源传入的sql语句的步骤包括:

4.如权利要求3所述的结构化查询语句分析方法,其特征在于,所述可分类标志词条包括终结符词条和非终结符词条,所述对所述可分类标志词条进行语法规则解析,生成抽象语法树的步骤包括:

5.如权利要求4所述的结构化查询语句分析方法,其特征在于,所述通过预设的分析策略对所述抽象语法树进行分析,得到所述标准化sql语句的分析结果的步骤包括:

6.如权利要求5所述的结构化查询语句分析方法,其特征在于,所述抽象语法树包括若干子树,所述通过预设的性能分析策略对所述抽象语法树进行性能分析,得到所述标准化sql语句的性能分析结果的步骤包括:

7.如权利要求5所述的结构化查询语句分析方法,其特征在于,所述通过预设的执行分析策略对所述抽象语法树进行执行分析,得到所述标准化sql语句的执行分析结果的步骤包括:

8.一种结构化查询语句分析装置,其特征在于,所述装置包括:

9.一种结构化查询语句分析设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的结构化查询语句分析程序,所述结构化查询语句分析程序配置为实现如权利要求1至7中任一项所述的结构化查询语句分析方法的步骤。

10.一种存储介质,其特征在于,所述存储介质上存储有结构化查询语句分析程序,所述结构化查询语句分析程序被处理器执行时实现如权利要求1至7任一项所述的结构化查询语句分析方法的步骤。


技术总结
本发明公开了一种结构化查询语句分析方法、装置、设备以及存储介质,属于计算机技术领域。本发明通过将预先获取的标准化结构化查询语言SQL语句拆解为可分类标志词条,对所述可分类标志词条进行语法规则解析,生成抽象语法树,基于预设的分析策略对所述抽象语法树进行分析,得到所述标准化SQL语句的分析结果,通过上述方式对SQL语句进行全方位、多角度的分析并输出分析结果使开发人员更高效的处理SQL开发中的各自问题,从而提高SQL相关开发效率。

技术研发人员:罗济杭,袁希贤
受保护的技术使用者:招商银行股份有限公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1