[发明专利]一种数据库并行度的控制方法及装置有效
申请号: | 201711079114.X | 申请日: | 2017-11-06 |
公开(公告)号: | CN107862042B | 公开(公告)日: | 2020-12-18 |
发明(设计)人: | 黄志鸿;易金华;裴炜裕;钟剑标;李进学 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/22 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王云晓;王宝筠 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 并行 控制 方法 装置 | ||
本申请提供了一种数据库并行度的控制方法及装置,方法包括:在目标存储过程需要执行时,判断是否预先为目标存储过程配置了并行等待开关,若是,获取预先为存储过程配置的优先级和目标存储过程执行所需的并行度数,判断是否存在高优先级的存储过程准备使用数据库的并行度,若是,则等待预设时间间隔,若否,则判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数,若是,按目标存储过程执行所需的并行度数为目标存储过程分配并行度,以使目标存储过程使用分配的并行度执行。本申请通过预先为存储过程配置并行等待开关、并行度数和优先级,使存储过程在执行时能够按照优先级高低获得配置的并行度,从而使用获得的并行度数稳定执行。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据库并行度的控制方法及装置。
背景技术
如今IT系统的数据规模越来越大,如何从海量数据中获取需要的数据并及时作相应处理成为一个大难题。在数据库如Oracle数据库中,并行执行是解决该难题的有效手段。所谓并行执行,就是同时开启多个线程或进程来共同完成一个任务。多线程或进程的使用其实就是消耗更多的CPU、内存、IO通道等硬件资源以达到缩短执行时间的目的,即通过最大限度的利用硬件资源,换取更高效率的程序执行。
基于数据库的联机分析处理OLAP应用中,通过并行执行涉及海量数据的SQL来缩短执行时间已成为一种有效手段,然而,当某个时间点数据库剩余可用并行度不满足SQL所需并行度的数量时,SQL只能串行执行或者进入并行度使用排队队列中,在这种场景下,应用程序对于数据库并行度的使用处于失控状态,且不可动态调整每个SQL需要的并行度,这使得SQL执行时间不稳定,如何合理高效的控制数据库的并行度是亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种数据库并行度的控制方法及装置,以实现合理高效的控制数据库的并行度,其技术方案如下:
一种数据库并行度的控制方法,包括:
当目标存储过程需要执行时,判断是否预先为所述目标存储过程配置了并行等待开关;
如果是,则获取预先为所述存储过程配置的优先级和所述目标存储过程执行所需的并行度数;
判断是否存在高优先级的存储过程准备使用数据库的并行度,其中,所述高优先级的存储过程为优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则等待预设时间间隔,然后执行所述判断是否存在高优先级的存储过程准备使用数据库的并行度;如果否,则判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数;
如果是,则按所述目标存储过程执行所需的并行度数为所述目标存储过程分配并行度,以使所述目标存储过程使用分配的并行度执行。
其中,所述判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,包括:
获取第一并行度数和第二并行度数,其中,所述第一并行度数是为当前正在执行的存储过程分配的并行度数,所述第二并行度是所述数据库当前被占用的并行度数;
基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数。
其中,存储过程的状态包括:运行初始状态、准备运行状态、正在运行状态和运行成功状态;
所述判断是否存在高优先级的存储过程准备使用数据库的并行度,包括:
判断是否存在处于准备运行状态、有并行度需求,且优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则判定存在所述高优先级的存储过程准备使用数据库的并行度,否则,判定不存在所述高优先级的存储过程准备使用数据库的并行度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711079114.X/2.html,转载请声明来源钻瓜专利网。