System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书实施例涉及数据库,特别涉及执行计划构建方法及系统。
技术介绍
1、随着计算机和互联网技术的发展,数据库技术在越来越多的场景中得以应用,其通过对数据的统一组织和管理,可以按照指定的结构建立相应的数据库和数据仓库;并且利用数据库管理系统和数据挖掘系统可以设计出能够实现对数据库中的数据进行添加、修改、删除、处理、分析、理解、报表和打印等多种功能的数据管理和数据挖掘应用系统,实现可以利用应用管理系统最终实现对数据的处理、分析和理解。现有技术中,数据库通常会为每个sql仅缓存一份执行计划,如果不同绑定变量生成的结果集差异倾斜过大,则一个sql对应份执行计划可能会导致运行时部分效果好以及部分效果不好的问题。针对这一问题如果仅使用一个通用的计划,则会导致其包含参数符号$n,进而使得参数数量受到限制以及会发生参数引用错误问题。如果采用定制计划则会将提供的参数值替换进去,进而使得执行结果无法命中数据操作需求,同时还会无法解决资源消耗问题,因此亟需一种有效的方案以解决上述问题。
技术实现思路
1、有鉴于此,本说明书实施例提供了一种执行计划构建方法。本说明书一个或者多个实施例同时涉及一种执行计划构建装置,一种执行计划构建系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序产品,以解决现有技术中存在的技术缺陷。
2、根据本说明书实施例的第一方面,提供了一种执行计划构建方法,应用于数据库服务器,包括:
3、获取数据库的预编译语句,以及确定所述数据库对应的参数分布直方图
4、在所述预编译语句中提取至少一个参数值,并确定每个参数值在所述参数分布直方图中对应的区间信息;
5、按照所述区间信息确定每个参数值的执行计划类型,根据每个参数值对应的执行计划类型构建所述预编译语句对应的目标执行计划并缓存至目标链表;
6、在接收到针对所述数据库提交的关联所述预编译语句的访问请求的情况下,通过在所述目标链表中读取所述目标执行计划执行所述访问请求对应的数据处理任务。
7、根据本说明书实施例的第二方面,提供了一种执行计划构建装置,应用于数据库服务器,包括:
8、获取模块,被配置为获取数据库的预编译语句,以及确定所述数据库对应的参数分布直方图;
9、确定模块,被配置为在所述预编译语句中提取至少一个参数值,并确定每个参数值在所述参数分布直方图中对应的区间信息;
10、构建模块,被配置为按照所述区间信息确定每个参数值的执行计划类型,根据每个参数值对应的执行计划类型构建所述预编译语句对应的目标执行计划并缓存至目标链表;
11、读取模块,被配置为在接收到针对所述数据库提交的关联所述预编译语句的访问请求的情况下,通过在所述目标链表中读取所述目标执行计划执行所述访问请求对应的数据处理任务。
12、根据本说明书实施例的第三方面,提供了一种执行计划构建系统,包括客户端和数据库服务器,包括:
13、所述客户端,用于响应于预编译请求针对数据库构建预编译语句;在所述预编译语句中提取至少一个参数值,并将各个参数值发送至所述数据库服务器;
14、所述数据库服务器,用于确定所述数据库对应的参数分布直方图,以及每个参数值在所述参数分布直方图中对应的区间信息;按照所述区间信息确定每个参数值的执行计划类型,根据每个参数值对应的执行计划类型构建所述预编译语句对应的目标执行计划并缓存至目标链表;在接收到针对所述数据库提交的关联所述预编译语句的访问请求的情况下,通过在所述目标链表中读取所述目标执行计划执行所述访问请求对应的数据处理任务。
15、根据本说明书实施例的第四方面,提供了一种计算设备,包括:
16、存储器和处理器;
17、所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述执行计划构建方法的步骤。
18、根据本说明书实施例的第五方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述执行计划构建方法的步骤。
19、根据本说明书实施例的第六方面,提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述执行计划构建方法的步骤。
20、本实施例提供的应用于数据库服务器的执行计划构建方法,为了能够针对预编译语句构建其匹配的执行计划,且避免执行计划占用更多的计算资源,同时保证数据处理效率,可以先获取数据库的预编译语句,以及确定数据库对应的参数分布直方图;此时,可以在预编译语句中提取至少一个参数值,并确定每个参数值在参数分布直方图中对应的区间信息;通过区间信息可以体现出每个参数值在数据库中的数据占比情况。在此基础上,即可按照区间信息确定每个参数值最优匹配的执行计划类型,进而可以根据每个参数值对应的执行计划类型构建预编译语句对应的目标执行计划并缓存至目标链表;实现在构建预编译语句的执行计划时,可以通过分析参数值在数据库中的占比情况实现,进而可以保证目标执行计划更加符合预编译语句的执行需求,可以保证在消耗更少资源的前提下完成语句对应的数据处理操作。此后,若接收到针对数据库提交的关联预编译语句的访问请求的情况下,即可通过在目标链表中读取目标执行计划执行访问请求对应的数据处理任务,进而实现预先构建最合理的执行计划用于数据处理操作,可以更好的提升执行计划的准确性,同时能够节省更多的计算资源。
本文档来自技高网...【技术保护点】
1.一种执行计划构建方法,其特征在于,应用于数据库服务器,包括:
2.根据权利要求1所述的执行计划构建方法,其特征在于,所述获取数据库的预编译语句步骤执行之前,还包括:
3.根据权利要求1所述的执行计划构建方法,其特征在于,所述在所述预编译语句中提取至少一个参数值,并确定每个参数值在所述参数分布直方图中对应的区间信息,包括:
4.根据权利要求1所述的执行计划构建方法,其特征在于,所述至少一个参数值中任意一个参数值对应的执行计划类型的确定,包括:
5.根据权利要求1所述的执行计划构建方法,其特征在于,所述根据每个参数值对应的执行计划类型构建所述预编译语句对应的目标执行计划并缓存至目标链表,包括:
6.根据权利要求5所述的执行计划构建方法,其特征在于,所述方法还包括:
7.根据权利要求5或6所述的执行计划构建方法,其特征在于,所述根据每个参数值对应的执行计划类型构建所述预编译语句对应的目标执行计划并缓存至目标链表步骤执行之后,还包括:
8.根据权利要求1至6任一项所述的执行计划构建方法,其特征在于,所
9.一种执行计划构建系统,其特征在于,包括客户端和数据库服务器,包括:
10.一种计算设备,其特征在于,包括:
11.一种计算机可读存储介质,其特征在于,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述方法的步骤。
12.一种计算机程序产品,其特征在于,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现权利要求1至8任意一项所述方法的步骤。
...【技术特征摘要】
1.一种执行计划构建方法,其特征在于,应用于数据库服务器,包括:
2.根据权利要求1所述的执行计划构建方法,其特征在于,所述获取数据库的预编译语句步骤执行之前,还包括:
3.根据权利要求1所述的执行计划构建方法,其特征在于,所述在所述预编译语句中提取至少一个参数值,并确定每个参数值在所述参数分布直方图中对应的区间信息,包括:
4.根据权利要求1所述的执行计划构建方法,其特征在于,所述至少一个参数值中任意一个参数值对应的执行计划类型的确定,包括:
5.根据权利要求1所述的执行计划构建方法,其特征在于,所述根据每个参数值对应的执行计划类型构建所述预编译语句对应的目标执行计划并缓存至目标链表,包括:
6.根据权利要求5所述的执行计划构建方法,其特征在于,所述方法还包括:
7.根据权利要求5或6所述...
【专利技术属性】
技术研发人员:张君华,周华军,褚华兴,姚崇,
申请(专利权)人:恒生电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。