System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库优化器的处理系统及方法技术方案_技高网

数据库优化器的处理系统及方法技术方案

技术编号:40762081 阅读:12 留言:0更新日期:2024-03-25 20:13
本申请实施例涉及一种数据库优化器的处理系统及方法,包括客户端驱动和数据库服务端,客户端驱动包括:优化器管理模块、负载控制模块、第一执行计划处理器和目标水印缓存;数据库服务端包括:客户端优化器模块池、执行计划缓存和第二执行计划处理器;利用客户端驱动端的算力,分担优化器负载处理负担。客户端根据自身的闲置算力情况,可以选择为服务端优化器生成抽象语法树(Abstract Syntax Tree,AST)或者逻辑执行计划,节省服务端的CPU资源开销,同时利用数据库SQL水印技术,节省客户端和服务端之间的网络带宽开销,避免客户端和服务端之间直接传输SQL语句;由此,可以实现提升安全性的技术效果。

【技术实现步骤摘要】

本申请实施例涉及数据库优化的,尤其涉及一种数据库优化器的处理系统及方法


技术介绍

1、再当今的网络通信领域,数据库优化器维持着基本的查询功能额,尤其涉及到客户端较多,并发连接较多,客户端和服务端之间网络负载高,服务端负载压力较大的场景下,服务端的数据库sql解析器、优化器的负载较大,限制整体数据库性能。

2、一般的业界数据库的优化器通常完全在服务端实现,客户端驱动向服务端以数据库协议发送sql语句,客户端驱动侧并不参与sql的解析和优化。当客户端出现长时间空闲时,对于客户端来说白白浪费了客户端的等待时间,降低了事件处理效率。


技术实现思路

1、鉴于此,为解决上述服务端优化器工作效率低的技术问题,本申请实施例提供一种数据库优化器的处理系统及方法。

2、第一方面,本申请实施例提供一种数据库优化器的处理系统,包括客户端驱动和数据库服务端,所述客户端驱动包括:优化器管理模块、负载控制模块、第一执行计划处理器和目标水印缓存;

3、所述数据库服务端包括:客户端优化器模块池、执行计划缓存和第二执行计划处理器;

4、所述优化器管理模块在客户端向所述客户端驱动发送连接请求时,获取预先存储在所述客户端优化器模块池中最新版本号的目标优化器模块,以使所述数据库驱动与所述数据库服务端建立连接;

5、通过所述负载控制模块监控所述客户端的负载量,以及控制所述数据库服务端的优化器的自适应执行策略,在确定所述客户端驱动执行优化器的自适应执行策略时,利用所述第一执行计划处理器执行逻辑优化处理,生成目标水印,并将所述目标水印发送至所述执行计划缓存进行同步更新,以及利用所述第二执行计划处理器对所述目标水印进行鉴权和校验处理,并将处理后的所述目标水印存储至所述目标水印缓存。

6、在一个可能的实施方式中,所述客户端驱动与所述数据库服务端之间包括后台心跳模块;

7、所述后台心跳模块检测到所述数据库服务端变更执行计划缓存时,生成目标水印更新消息并发送至所述客户端驱动,以使所述客户端驱动根据所述目标水印更新消息对所述目标水印缓存进行同步更新。

8、第二方面,本申请实施例提供一种数据库优化器的处理方法,应用于第一方面中任一所述的数据库优化器的处理系统,包括:

9、在客户端与数据库服务端连接成功时,利用负载控制模块获取所述客户端的负载量,所述负载量表征所述客户端的cpu利用率和内存利用率;

10、基于所述负载量确定所述客户端的目标负载模式;

11、基于所述目标负载模式确定目标优化器,以及确定所述目标优化器对应的执行策略;

12、根据所述执行策略对所述目标优化器执行逻辑优化处理。

13、在一个可能的实施方式中,实现所述客户端与数据库服务端连接成功,包括:

14、在接收到客户端发送的连接请求时对客户端的动态优化器组件进行初始化处理,以及获取对应的初始化版本号;

15、向数据库服务端发送携带有所述初始化版本号的获取请求,以使所述数据库服务端将目标版本号的动态优化器组件发送给客户端驱动后执行动态加载处理;

16、向所述数据库服务端发送目标数量的目标水印缓存请求,以使所述数据库服务端发送所述目标数量的目标水印缓存后进行加载处理;

17、在所述目标水印缓存加载完成时向所述客户端反馈连接请求。

18、在一个可能的实施方式中,在执行所述基于所述负载量确定所述客户端的目标负载模式之前,所述方法,包括:

19、通过后台心跳模块确定数据库服务端中的执行计划缓存是否有更新;

20、当确定所述执行计划缓存存在更新时,接收所述后台心跳模块发送的目标水印更新消息;

21、根据所述目标水印更新消息同步更新客户端驱动中的目标水印缓存。

22、在一个可能的实施方式中,所述基于所述负载量确定所述客户端的目标负载模式,包括:

23、将所述负载量与预先设定的阈值范围进行比对,确定比对结果;

24、当所述负载量大于所述阈值范围的高边界值时,确定所述比对结果为第一比对结果;

25、根据所述第一比对结果确定所述客户端处于高负载模式;

26、当所述负载量小于所述阈值范围的高边界值且大于所述阈值范围的低边界值时,确定所述比对结果为第二比对结果;

27、根据所述第二比对结果确定所述客户端处于中等负载模式;

28、当所述负载量小于所述阈值范围的低边界值时,确定所述比对结果为第三比对结果;

29、根据所述第三比对结果确定所述客户端处于低负载模式。

30、在一个可能的实施方式中,所述基于所述目标负载模式确定目标优化器,以及确定所述目标优化器对应的执行策略,包括:

31、在所述目标负载模式为低负载模式时,确定所述目标优化器为第一客户端优化器;

32、基于所述第一客户端优化器确定第一执行策略;

33、在所述目标负载模式为中等负载模式时,确定所述目标优化器为第二客户端优化器;

34、基于所述第二客户端优化器确定第二执行策略;

35、在所述目标负载模式为高负载模式时,确定所述目标优化器为服务端优化器;

36、基于所述服务端优化器确定第三执行策略。

37、在一个可能的实施方式中,在执行所述根据所述执行策略对所述目标优化器执行逻辑优化处理之前,所述方法,包括:

38、在接收到客户端发送的数据库sql请求时,通过客户端驱动对所述sql请求进行解析处理,生成对应模式化的抽象语法树ast,所述ast中携带有模式化参数;

39、将所述ast与所述客户端驱动中的目标水印缓存进行匹配,得到匹配结果;

40、当所述ast与所述目标水印缓存匹配成功时,得到对应的匹配结果为第一匹配结果;

41、当所述ast与所述目标水印缓存匹配失败时,得到对应的匹配结果为第二匹配结果。

42、在一个可能的实施方式中,所述根据所述执行策略对所述目标优化器执行逻辑优化处理,包括:

43、在所述执行策略为第一执行策略且所述ast的匹配结果为第一匹配结果时,通过所述客户端驱动向数据库服务端发送所述ast对应的第一目标sql水印和所述模式化参数,以使所述数据库服务端执行鉴权和校验处理,确定第一sql响应结果;

44、接收到所述数据库服务端发送的所述第一sql响应结果;

45、在所述执行策略为第一执行策略且所述ast的匹配结果为第二匹配结果时,通过所述客户端驱动对所述ast执行逻辑优化处理,生成逻辑优化计划;

46、向数据库服务端发送所述逻辑优化计划和所述模式化参数,以使所述数据库服务端执行鉴权和校验处理,确定第二sql响应结果;

47、在接收到所述数据库服务端发送的所述第二sql响应结果后更新目标水印缓存。

本文档来自技高网...

【技术保护点】

1.一种数据库优化器的处理系统,包括客户端驱动和数据库服务端,其特征在于,所述客户端驱动包括:优化器管理模块、负载控制模块、第一执行计划处理器和目标水印缓存;

2.根据权利要求1所述的系统,其特征在于,所述客户端驱动与所述数据库服务端之间包括后台心跳模块;

3.一种数据库优化器的处理方法,应用于权利要求1-2中任一所述的数据库优化器的处理系统,其特征在于,包括:

4.根据权利要求3所述的方法,其特征在于,实现所述客户端与数据库服务端连接成功,包括:

5.根据权利要求4所述的方法,其特征在于,在执行所述基于所述负载量确定所述客户端的目标负载模式之前,所述方法,包括:

6.根据权利要求5所述的方法,其特征在于,所述基于所述负载量确定所述客户端的目标负载模式,包括:

7.根据权利要求6所述的方法,其特征在于,所述基于所述目标负载模式确定目标优化器,以及确定所述目标优化器对应的执行策略,包括:

8.根据权利要求7所述的方法,其特征在于,在执行所述根据所述执行策略对所述目标优化器执行逻辑优化处理之前,所述方法,包括:

9.根据权利要求8所述的方法,其特征在于,所述根据所述执行策略对所述目标优化器执行逻辑优化处理,包括:

10.根据权利要求8所述的方法,其特征在于,所述根据所述执行策略对所述目标优化器执行逻辑优化处理,包括:

11.根据权利要求7所述的方法,其特征在于,所述根据所述执行策略对所述目标优化器执行逻辑优化处理,包括:

...

【技术特征摘要】

1.一种数据库优化器的处理系统,包括客户端驱动和数据库服务端,其特征在于,所述客户端驱动包括:优化器管理模块、负载控制模块、第一执行计划处理器和目标水印缓存;

2.根据权利要求1所述的系统,其特征在于,所述客户端驱动与所述数据库服务端之间包括后台心跳模块;

3.一种数据库优化器的处理方法,应用于权利要求1-2中任一所述的数据库优化器的处理系统,其特征在于,包括:

4.根据权利要求3所述的方法,其特征在于,实现所述客户端与数据库服务端连接成功,包括:

5.根据权利要求4所述的方法,其特征在于,在执行所述基于所述负载量确定所述客户端的目标负载模式之前,所述方法,包括:

6.根据权利要求5所述的方法,其特征在于,所述...

【专利技术属性】
技术研发人员:朱海涛吕伟初
申请(专利权)人:金篆信科有限责任公司
类型:发明
国别省市:

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

1