一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种SQL语句全局变量属性查询方法及工具与流程

2022-04-27 10:14:18 来源:中国专利 TAG:

一种sql语句全局变量属性查询方法及工具
技术领域
1.本发明涉及sql语句技术领域,具体的说是一种sql语句全局变量属性查询方法及工具。


背景技术:

2.目前来看,大多数数据库(包括mysql、pgsql等关系型数据库)对sql语句执行计划等信息的查询有两种方案:一种方案是通过explain后接select语句,该方法只能查询select语句的执行计划,其查询结果以表的形式展现,表内容包括每个select子句的类型,这一行的数据的归属表,查询中使用到的索引类型等信息;另一种方案是通过explain analyze后接sql语句(例如select...,insert...,)的方式来进行的。第二种方案相比于第一种方案来说,能查询的子句范围虽然更大,但是查询结果却会有所差异:通过第二种方案,命令结束后不返回数据而是生成执行计划树,并且会实际执行子句,以此测量出查询计划中关键步骤的耗时,扫描执行次数等数据。
3.相较于传统的关系型数据库,分布式数据库具有强一致,可扩展和高可靠的特性。因此,分布式数据库除了需要查询耗时等以外,还需要对sql语句的distribution、vectorized等信息进行查询。除此之外,相较于mysql、pgsql等关系型数据库在查询结果生成的规划节点的树结构以及每个子树所耗费的时间和扫描的行数次数,分布式数据库还需要对语句计划树的每个子树执行所在节点等信息进行查询。通过对每一句sql语句的全局属性查询,可以通过对查询结果进行分析来优化数据库。


技术实现要素:

4.本发明针对目前技术发展的需求和不足之处,提供一种sql语句全局变量属性查询方法及工具。
5.首先,本发明公开保护一种sql语句全局变量属性查询方法,解决上述技术问题采用的技术方案如下:
6.一种sql语句全局变量属性查询方法,其查询过程包括:
7.步骤s1、用户通过客户端输入sql语句,客户端接收sql语句,并将sql语句发送到分布式数据库;
8.步骤s2、分布式数据库通过解析器将sql语句解析生成抽象语法树;
9.步骤s3、分布式数据库通过执行器接收抽象语法树,并对抽象语法树进行解析操作,生成执行计划;
10.步骤s4、分布式物理引擎通过执行计划判断sql语句的distribution和vectorized;
11.步骤s5、分布式数据库执行上述执行计划,并判定sql语句是否为全局变量属性查询语句,
12.如果不是,则按照一般sql语句继续执行计划;
13.如果是,则继续执行步骤s3生成的执行计划,并向客户端返回相应的结果。
14.执行步骤s2时,分布式数据库通过解析器首先将sql语句解析分成一系列标识符,随后将标识符匹配到相对应的语法,进而生成抽象语法树。
15.执行步骤s4时,分布式物理引擎通过执行计划判断sql语句的distribution和vectorized,具体判断sql语句的执行是分布式的还是本地执行,判断sql语句的执行过程中是否启动了向量化列存引擎。
16.执行步骤s5的过程中,继续执行步骤s3生成的执行计划后,生成子句的distribution和vectorized,并记录当下时间戳,然后执行子句计划,子句计划执行完成后再次记录时间戳,通过两个时间戳记录完成sql语句执行计划所花费的时间,并且记录子句的distribution和vectorized,随后返回到客户端。
17.优选的,子句计划单独执行,且记录子句计划每个执行步骤所在的节点,在执行结束后返回到客户端。
18.其次,本发明公开保护一种sql语句全局变量属性查询工具,解决上述技术问题采用的技术方案如下:
19.一种sql语句全局变量属性查询工具,其实现涉及:
20.客户端模块,用于接收用户输入的sql语句,并将sql语句发送到分布式数据库;
21.解析模块,部署于分布式数据库,用于将sql语句解析生成抽象语法树;
22.执行模块,部署于分布式数据库,用于接收抽象语法树,并对抽象语法树进行解析操作,生成执行计划;
23.分布式引擎模块,部署于分布式数据库,用于通过执行计划判断sql语句的distribution和vectorized;
24.分布式数据库,用于执行生成的执行计划,并判定sql语句是否为全局变量属性查询语句,若是,则继续执行生成的执行计划并向客户端模块返回相应的结果,若否,则按照一般sql语句继续执行计划。
25.可选的,所涉及解析模块首先将sql语句解析分成一系列标识符,随后将标识符匹配到相对应的语法,进而生成抽象语法树。
26.可选的,所涉及分布式引擎模块通过执行计划判断sql语句的distribution和vectorized,具体判断sql语句的执行是分布式的还是本地执行,判断sql语句的执行过程中是否启动了向量化列存引擎。
27.可选的,所涉及分布式数据库判定sql语句为全局变量属性查询语句后,继续执行生成的执行计划,随后生成子句的distribution和vectorized,记录当下时间戳,然后执行子句计划,子句计划执行完成后再次记录时间戳,通过两个时间戳记录完成sql语句执行计划所花费的时间,并且记录子句的distribution和vectorized,随后返回到客户端模块。
28.优选的,在分布式数据库中,子句计划单独执行,且记录子句计划每个执行步骤所在的节点,在执行结束后返回到客户端模块。
29.本发明的一种sql语句全局变量属性查询方法及工具,与现有技术相比具有的有益效果是:
30.(1)本发明可以查询sql语句的全局属性,进而通过查询结果优化分布式数据库;
31.(2)本发明的查询结果对传统数据库所没有的信息进行了补充,而且要查询的sql
语句是真实执行的,可以使用户和开发者清楚的了解到一条sql语句在执行过程中的各项信息,让开发者对分布式数据库的性能有着较为直观的了解,让用户更熟悉sql语句在分布式数据库的执行流程。
附图说明
32.附图1是本发明实施例一的方法流程图;
33.附图2是本发明实施例二的模块连接框图。
34.附图中各标号信息表示:
35.1、客户端模块,2、解析模块,3、执行模块,4、分布式引擎模块,5、分布式数据库。
具体实施方式
36.为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
37.实施例一:
38.结合附图1,本实施例提出一种sql语句全局变量属性查询方法,其查询过程包括:
39.步骤s1、用户通过客户端输入sql语句,客户端接收sql语句,并将sql语句发送到分布式数据库。
40.步骤s2、分布式数据库通过解析器将sql语句解析分成一系列标识符,随后将标识符匹配到相对应的语法,生成抽象语法树。
41.步骤s3、分布式数据库通过执行器接收抽象语法树,并对抽象语法树进行解析操作,生成执行计划。
42.步骤s4、分布式物理引擎通过执行计划判断sql语句的distribution和vectorized,具体判断sql语句的执行是分布式的还是本地执行,判断sql语句的执行过程中是否启动了向量化列存引擎。
43.步骤s5、分布式数据库执行上述执行计划,并判定sql语句是否为全局变量属性查询语句,
44.如果不是,则按照一般sql语句继续执行计划;
45.如果是,则继续执行步骤s3生成的执行计划,生成子句的distribution和vectorized,记录当下时间戳,然后执行子句计划,子句计划执行完成后再次记录时间戳,通过两个时间戳记录完成sql语句执行计划所花费的时间,并且记录子句的distribution和vectorized,随后返回到客户端。
46.需要补充的是,子句计划单独执行,且记录子句计划每个执行步骤所在的节点,在执行结束后返回到客户端。
47.实施例二:
48.结合附图2,本实施例提出一种sql语句全局变量属性查询工具,其实现涉及:
49.客户端模块1,用于接收用户输入的sql语句,并将sql语句发送到分布式数据库5;
50.解析模块2,部署于分布式数据库5,用于将sql语句解析分成一系列标识符,随后将标识符匹配到相对应的语法,生成抽象语法树;
51.执行模块3,部署于分布式数据库5,用于接收抽象语法树,并对抽象语法树进行解
析操作,生成执行计划;
52.分布式引擎模块4,部署于分布式数据库5,用于通过执行计划判断sql语句的distribution和vectorized,具体判断sql语句的执行是分布式的还是本地执行,判断sql语句的执行过程中是否启动了向量化列存引擎;
53.分布式数据库5,用于执行生成的执行计划,并判定sql语句是否为全局变量属性查询语句,若否,则按照一般sql语句继续执行计划,若是,则继续执行生成的执行计划,生成子句的distribution和vectorized,记录当下时间戳,然后执行子句计划,子句计划执行完成后再次记录时间戳,通过两个时间戳记录完成sql语句执行计划所花费的时间,并且记录子句的distribution和vectorized,随后返回到客户端模块1。
54.需要补充的是,在分布式数据库5中,子句计划单独执行,且记录子句计划每个执行步骤所在的节点,在执行结束后返回到客户端模块1。
55.综上可知,采用本发明的一种sql语句全局变量属性查询方法及工具,对传统数据库所没有的信息进行了补充,可以使用户和开发者清楚的了解到一条sql语句在执行过程中的各项信息,让开发者对分布式数据库的性能有着较为直观的了解,让用户更熟悉sql语句在分布式数据库的执行流程。
56.以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献