一种自定义函数优化方法、装置、计算机设备及介质制造方法及图纸

技术编号:37985826 阅读:7 留言:0更新日期:2023-06-30 10:00
本申请提供了一种自定义函数优化方法、装置、计算机设备及介质,所述方法包括获取初始自定义函数数据,以及预设数据库的优化器加载的统计信息;基于所述初始自定义函数数据和所述统计信息确定优化信息;按照所述优化信息对所述初始自定义函数数据进行优化处理,得到优化数据;所述优化数据包括目标自定义函数数据和编译特征信息;基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果。本申请通过结合数据库的优化器加载的统计信息对初始自定义函数数据进行优化处理,达到了结合数据库的优化器对自定义函数数据进行优化,提升自定义函数数据的执行效率,进而提高自定义函数数据的运行速度。函数数据的运行速度。函数数据的运行速度。

【技术实现步骤摘要】
一种自定义函数优化方法、装置、计算机设备及介质


[0001]本申请涉及计算机领域,特别是一种自定义函数优化方法、装置、计算机设备及介质。

技术介绍

[0002]PL是一种过程化程序语言(Procedural Language,PL)。它是对SQL(Structured Query Language,结构化查询语言)的扩展,在普通SQL语句基础上,增加编程语言的特点,将数据操作和查询语句组织在PL代码的过程化代码中,通过逻辑判断、循环等操作实现复杂的功能。使用PL可以编写具有很多高级功能的程序,能够把业务逻辑封装在数据库内部,提供更好的抽象性和安全性,同时减少了网络的交互,调用速度更快,从而提升整体性能。
[0003]自定义函数(User Define Function,UDF)是一个可编程可扩展的数据库对象,它是对数据库函数能力的扩展,可基于业务应用逻辑来定制函数的实现。自定义函数的内部实现语言可以基于过程化程序语言或更通用的高级语言。
[0004]UDF是一个例程,它可以接收参数、执行操作并返回该操作的结果。
[0005]在现有的技术方案中,通常用户创建的基于PL实现自定义函数是为了实现基于业务定制能力,由于用户函数实现存在不可预知性,所以现有技术中的传统数据库难以对自定义函数进行自动优化。

技术实现思路

[0006]鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种自定义函数优化方法、装置、计算机设备及介质,包括:
[0007]一种自定义函数优化方法,包括:
[0008]获取初始自定义函数数据,以及预设数据库的优化器加载的统计信息;
[0009]基于所述初始自定义函数数据和所述统计信息确定优化信息;
[0010]按照所述优化信息对所述初始自定义函数数据进行优化处理,得到优化数据;所述优化数据包括目标自定义函数数据和编译特征信息;
[0011]基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果。
[0012]进一步地,所述方法还包括:
[0013]在所述编译特征信息存在固定输出特征的情况下,确定所述目标自定义函数数据的固定输出信息;
[0014]缓存所述固定输出信息。
[0015]进一步地,所述方法还包括:
[0016]在所述编译特征信息存在映射特征的情况下,构建映射信息表;所述映射信息表用于记录所述目标自定义函数数据的输入

输出映射关系。
[0017]进一步地,所述基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果包括:
[0018]在所述编译特征信息存在固定输出特征且接收到第一输入信息时,将所述固定输出信息确定为所述目标自定义函数数据的执行结果。
[0019]进一步地,所述基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果包括:
[0020]在所述编译特征信息存在映射特征且接收到第二输入信息时,判断所述映射信息表中是否存在与所述第二输出信息对应的目标输出信息;
[0021]若所述映射信息表中存在与所述第二输出信息对应的目标输出信息,则确定所述目标输出信息为所述目标自定义函数数据的执行结果。
[0022]进一步地,所述输出与所述目标自定义函数数据匹配的执行结果,还包括:
[0023]若所述映射信息表中不存在与所述第二输出信息,则执行所述目标自定义函数数据包含的指令以得到与所述目标输出信息;
[0024]将所述第二输出信息和所述目标输出信息的映射关系存储于所述映射信息表中;
[0025]确定所述目标输出信息为所述目标自定义函数数据的执行结果。
[0026]进一步地,所述统计信息包括数据特征,以及用于部署所述数据库的服务器硬件信息;
[0027]所述优化处理包括:降低计算复杂度、代码填充、结果预计算、冗余删除、常量优化、表达式优化。
[0028]一种自定义函数优化装置,包括:
[0029]获取模块,用于获取初始自定义函数数据,以及预设数据库的优化器加载的统计信息;
[0030]优化信息确定模块,用于基于所述初始自定义函数数据和所述统计信息确定优化信息;
[0031]优化处理模块,用于按照所述优化信息对所述初始自定义函数数据进行优化处理,得到优化数据;所述优化数据包括目标自定义函数数据和编译特征信息;
[0032]执行结果输出模块,用于基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果。
[0033]一种计算机设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的自定义函数优化方法的步骤。
[0034]一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的自定义函数优化方法的步骤。
[0035]本申请具有以下优点:
[0036]在本申请的实施例中,针对于现有技术中的由于用户函数实现存在不可预知性,导致传统数据库难以对自定义函数进行自动优化的问题,本申请提供了结合数据库优化器对自定义函数数据进行优化的解决方案,具体为:获取初始自定义函数数据,以及预设数据库的优化器加载的统计信息;基于所述初始自定义函数数据和所述统计信息确定优化信息;按照所述优化信息对所述初始自定义函数数据进行优化处理,得到优化数据;所述优化数据包括目标自定义函数数据和编译特征信息;基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果。通过结合数据库的优化器加载的统计信息对初始自定义函
数数据进行优化处理,得到优化后的目标自定义函数数据及其编译特征信息,基于编译特征信息输出目标自定义函数匹配的执行结果解决了现有技术中传统数据库中的自定义函数难以进行优化的问题,达到了结合数据库的优化器对自定义函数数据进行优化,提升自定义函数数据的执行效率,进而提高自定义函数数据的运行速度。
附图说明
[0037]为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0038]图1是本申请一实施例提供的一种自定义函数优化方法的步骤流程图;
[0039]图2是本申请一实施例提供的一种自定义函数优化方法的示例流程图;
[0040]图3是本申请一实施例提供的另一种自定义函数优化方法的步骤流程图;
[0041]图4是本申请一实施例提供的另一种自定义函数优化方法的示例流程图;
[0042]图5是本申请一实施例提供的一种自定义函数优化装置的结构框图;
[0043]图6是本专利技术一实施例提供的一种计算机设备的结构示意图。
具体实施方式
[0044]为使本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自定义函数优化方法,其特征在于,包括:获取初始自定义函数数据,以及预设数据库的优化器加载的统计信息;基于所述初始自定义函数数据和所述统计信息确定优化信息;按照所述优化信息对所述初始自定义函数数据进行优化处理,得到优化数据;所述优化数据包括目标自定义函数数据和编译特征信息;基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述编译特征信息存在固定输出特征的情况下,确定所述目标自定义函数数据的固定输出信息;缓存所述固定输出信息。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:在所述编译特征信息存在映射特征的情况下,构建映射信息表;所述映射信息表用于记录所述目标自定义函数数据的输入

输出映射关系。4.根据权利要求2所述的方法,其特征在于,所述基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果包括:在所述编译特征信息存在固定输出特征且接收到第一输入信息时,将所述固定输出信息确定为所述目标自定义函数数据的执行结果。5.根据权利要求3所述的方法,其特征在于,所述基于所述编译特征信息输出与所述目标自定义函数数据匹配的执行结果包括:在所述编译特征信息存在映射特征且接收到第二输入信息时,判断所述映射信息表中是否存在与所述第二输出信息对应的目标输出信息;若所述映射信息表中存在与所述第二输出信息对应的目标输出信息,则确定所述目标输出信息为所述目标自定义函数数据的执行结果。...

【专利技术属性】
技术研发人员:王海峰化明虎
申请(专利权)人:深圳计算科学研究院
类型:发明
国别省市:

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

1