CN107862042B - 一种数据库并行度的控制方法及装置 - Google Patents

一种数据库并行度的控制方法及装置 Download PDF

Info

Publication number
CN107862042B
CN107862042B CN201711079114.XA CN201711079114A CN107862042B CN 107862042 B CN107862042 B CN 107862042B CN 201711079114 A CN201711079114 A CN 201711079114A CN 107862042 B CN107862042 B CN 107862042B
Authority
CN
China
Prior art keywords
parallelism
storage process
database
degree
target storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711079114.XA
Other languages
English (en)
Other versions
CN107862042A (zh
Inventor
黄志鸿
易金华
裴炜裕
钟剑标
李进学
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201711079114.XA priority Critical patent/CN107862042B/zh
Publication of CN107862042A publication Critical patent/CN107862042A/zh
Application granted granted Critical
Publication of CN107862042B publication Critical patent/CN107862042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据库并行度的控制方法及装置,方法包括:在目标存储过程需要执行时,判断是否预先为目标存储过程配置了并行等待开关,若是,获取预先为存储过程配置的优先级和目标存储过程执行所需的并行度数,判断是否存在高优先级的存储过程准备使用数据库的并行度,若是,则等待预设时间间隔,若否,则判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数,若是,按目标存储过程执行所需的并行度数为目标存储过程分配并行度,以使目标存储过程使用分配的并行度执行。本申请通过预先为存储过程配置并行等待开关、并行度数和优先级,使存储过程在执行时能够按照优先级高低获得配置的并行度,从而使用获得的并行度数稳定执行。

Description

一种数据库并行度的控制方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据库并行度的控制方法及装置。
背景技术
如今IT系统的数据规模越来越大,如何从海量数据中获取需要的数据并及时作相应处理成为一个大难题。在数据库如Oracle数据库中,并行执行是解决该难题的有效手段。所谓并行执行,就是同时开启多个线程或进程来共同完成一个任务。多线程或进程的使用其实就是消耗更多的CPU、内存、IO通道等硬件资源以达到缩短执行时间的目的,即通过最大限度的利用硬件资源,换取更高效率的程序执行。
基于数据库的联机分析处理OLAP应用中,通过并行执行涉及海量数据的SQL来缩短执行时间已成为一种有效手段,然而,当某个时间点数据库剩余可用并行度不满足SQL所需并行度的数量时,SQL只能串行执行或者进入并行度使用排队队列中,在这种场景下,应用程序对于数据库并行度的使用处于失控状态,且不可动态调整每个SQL需要的并行度,这使得SQL执行时间不稳定,如何合理高效的控制数据库的并行度是亟需解决的问题。
发明内容
有鉴于此,本发明提供了一种数据库并行度的控制方法及装置,以实现合理高效的控制数据库的并行度,其技术方案如下:
一种数据库并行度的控制方法,包括:
当目标存储过程需要执行时,判断是否预先为所述目标存储过程配置了并行等待开关;
如果是,则获取预先为所述存储过程配置的优先级和所述目标存储过程执行所需的并行度数;
判断是否存在高优先级的存储过程准备使用数据库的并行度,其中,所述高优先级的存储过程为优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则等待预设时间间隔,然后执行所述判断是否存在高优先级的存储过程准备使用数据库的并行度;如果否,则判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数;
如果是,则按所述目标存储过程执行所需的并行度数为所述目标存储过程分配并行度,以使所述目标存储过程使用分配的并行度执行。
其中,所述判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,包括:
获取第一并行度数和第二并行度数,其中,所述第一并行度数是为当前正在执行的存储过程分配的并行度数,所述第二并行度是所述数据库当前被占用的并行度数;
基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数。
其中,存储过程的状态包括:运行初始状态、准备运行状态、正在运行状态和运行成功状态;
所述判断是否存在高优先级的存储过程准备使用数据库的并行度,包括:
判断是否存在处于准备运行状态、有并行度需求,且优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则判定存在所述高优先级的存储过程准备使用数据库的并行度,否则,判定不存在所述高优先级的存储过程准备使用数据库的并行度。
其中,所述基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,包括:
判断是否存在处于运行初始状态且优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则判断所述目标存储过程执行所需的并行度数与所述第一并行度数的和是否小于或等于目标并行度数,其中,所述目标并行度数为所述数据库总的并行度数乘以预设的预留并行度比率,所述预留并行比例为大于0小于1的数;
如果是,则进一步判断所述目标存储过程执行所需的并行度数与所述第二并行度数的和是否小于或等于所述目标并行度数;
如果是,则判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数,否则,判定所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数。
其中,所述基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,还包括:
若并不存在处于运行初始状态且优先级高于为所述目标存储过程配置的优先级的存储过程,则判断所述目标存储过程执行所需的并行度数与所述第一并行度数的和是否小于或等于数据库总的并行度;
如果是,则进一步判断所述目标存储过程执行所需的并行度数与所述第二并行度数的和是否小于或等于所述数据库总的并行度数;
如果是,则判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数,否则,判定所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数。
其中,所述获取第一并行度数,包括:
从目标登记表中获取所述第一并行度数,所述目标登记表中登记有为所述正在执行的存储过程分配的并行度数;
所述数据库并行度的控制方法还包括:
为所述目标存储过程分配并行度时,在所述目标登记表中登记为所述目标存储过程分配的并行度数;
在所述目标存储过程执行完毕之后,将所述目标存储过程占用的并行度从所述目标登记表中释放。
所述的数据库并行度的控制方法还包括:
若存在所述高优先级的存储过程准备使用数据库的并行度,或者,所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数,则等待预设时间间隔,然后执行所述判断是否存在高优先级的存储过程准备使用数据库的并行度。
一种数据库并行度的控制装置,包括:第一判断模块、获取模块、第二判断模块、第三判断模块和分配模块;
所述第一判断模块,用于当目标存储过程需要执行时,判断是否预先为所述目标存储过程配置了并行等待开关;
所述获取模块,用于在所述第一判断模块判定预先为所述目标存储过程配置了并行等待开关时,获取预先为所述存储过程配置的优先级和所述目标存储过程执行所需的并行度数;
所述第二判断模块,用于判断是否存在高优先级的存储过程准备使用数据库的并行度,其中,所述高优先级的存储过程为优先级高于为所述目标存储过程配置的优先级的存储过程;
所述第二判断模块,还用于在判断存在所述高优先级的存储过程准备使用数据库的并行度时,等待预设时间间隔,再判断是否存在高优先级的存储过程准备使用数据库的并行度;
所述第三判断模块,用于在所述第二判断模块判定不存在所述高优先级的存储过程准备使用数据库的并行度时,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数;
所述分配模块,用于在所述第三判断模块判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数时,按所述目标存储过程执行所需的并行度数为所述目标存储过程分配并行度,以使所述目标存储过程使用分配的并行度执行。
其中,所述第三判断模块,包括:获取子模块和判断子模块;
所述获取子模块,用于获取第一并行度数和第二并行度数,其中,所述第一并行度数是为当前正在执行的存储过程分配的并行度数,所述第二并行度是所述数据库当前被占用的并行度数;
所述判断子模块,用于基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数。
其中,所述存储过程的状态包括:运行初始状态、准备运行状态、正在运行状态和运行成功状态;
所述第二判断模块,具体用于判断是否存在处于准备运行状态、有并行度需求,且优先级高于为所述目标存储过程配置的优先级的存储过程,如果是,则判定存在高优先级的存储过程准备使用数据库的并行度,否则,判定不存在高优先级的存储过程准备使用数据库的并行度。
上述技术方案具有如下有益效果:
本发明提供的数据库并行度的控制方法及装置,在目标存储过程需要执行时,首先判断是否预先为目标存储过程配置了并行等待开关,若是,则获取预先为存储过程配置的优先级和目标存储过程执行所需的并行度数,然后判断是否存在高优先级的存储过程准备使用数据库的并行度,若是,则等待预设时间间隔,若否,则进一步判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数,若是,则按目标存储过程执行所需的并行度数为目标存储过程分配并行度,以使目标存储过程使用分配的并行度执行。由此可见,本发明提供的数据库并行度的控制方法及装置,通过预先为存储过程配置并行等待开关、并行度数和优先级,使存储过程在执行时能够按照优先级高低获得配置的并行度,从而使用获得的并行度数稳定执行,即本发明实现了对数据库并行度合理高效的控制。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的数据库并行度的控制方法的流程示意图;
图2为本发明实施例提供的数据库并行度的控制装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于现有数据库的并行执行体系,以Oracle数据库的Oracle 11.2.0.1版本为例,在Oracle 11gR2中,通过PARALLEL_DEGREE_POLICY参数来实现自动并行的控制,默认值是MANUAL,即自动并行未开启,但可通过更改对象级并行度、并行hint、session命令3个方法使用并行。在自动并行未开启的情况下,Oracle数据库没有可用的并行度,只能串行执行SQL,且无法动态调整并行度,这使得SQL执行时间不稳定。当PARALLEL_DEGREE_POLICY设置为AUTO时,开启自动并行,Oracle数据库会忽略SQL语句中表或索引上设置的并行度,同时忽略SQL语句中指定具体并行度的hint,而是通过评估SQL语句中相关对象的统计信息来计算该SQL语句是否需要并行以及决定多少并行度,并结合并行排队机制来控制并行进程对系统硬件资源的消耗程度,这就引发两个问题,其一,并行度由Oracle数据库自行决定,应用程序对SQL的资源消耗失去控制,无法差别化对待重要等级不同、时效要求不同的作业,其二,当相关对象的统计信息失效时,Oracle数据库评估的结论存在一定的误差,使得紧急需要使用并行执行的SQL堵塞在并行度使用排队队列,从而得不到及时处理。
基于上述问题,本发明通过配置存储过程的并行等待总开关、并行度数和优先级,使需要并行执行的存储过程按优先级高低获得配置的并行度,并使用获得的并行度稳定执行。以下对本发明实施例提供的数据库并行度的控制方法进行说明。
请参阅图1,示出了本发明实施例提供的数据库并行度的控制方法的流程示意图,该方法可以包括:
步骤S101:当目标存储过程需要执行时,判断是否预先为目标存储过程配置了并行等待开关,如果是,则执行步骤S102。
在本实施例一种可能的实现方式中,可预先建立一个存储过程级的配置表,该配置表维护存储过程的并行等待开关、并行度数和优先级。其中,并行度数为存储过程执行所需要的并行度数。
步骤S102:获取预先为存储过程配置的优先级和目标存储过程执行所需的并行度数。
以并行查询为例,目标存储过程执行所需的并行度数可以包括DML所需并行度数、DDL所需并行度数以及QUERY所需并行度数。
步骤S103:判断是否存在高优先级的存储过程准备使用数据库的并行度,如果是,则等待预设时间间隔,然后执行步骤S103,如果否,则执行步骤S104。
其中,高优先级的存储过程为优先级高于为目标存储过程配置的优先级的存储过程。
本发明的思想是让优先级高的存储过程先获得并行度,基于此,需要先判断是否存在优先级高于为目标存储过程配置的优先级的存储过程准备使用数据库的并行度。
步骤S104:判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数,如果是,则执行步骤S105,如果否,则等待预设时间间隔,然后执行步骤S103。
步骤S105:按目标存储过程执行所需的并行度数为目标存储过程分配并行度,以使目标存储过程使用分配的并行度执行。
示例性的,预先配置了DML所需并行度数、DDL所需并行度数以及QUERY所需并行度数,则按预先配置的并行度数量分别为DML、DDL和QUERY分配并行度。
本发明实施例提供的数据库并行度的控制方法,在目标存储过程需要执行时,首先判断是否预先为目标存储过程配置了并行等待开关,若是,则获取预先为存储过程配置的优先级和目标存储过程执行所需的并行度数,然后判断是否存在高优先级的存储过程准备使用数据库的并行度,若不存在高优先级的存储过程准备使用数据库的并行度,则进一步判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数,若是,则按目标存储过程执行所需的并行度数为目标存储过程分配并行度,以使目标存储过程使用分配的并行度执行。由此可见,本发明实施例提供的数据库并行度的控制方法,通过预先为存储过程配置并行等待开关、并行度数和优先级,使存储过程在执行时能够按照优先级高低获得配置的并行度,从而使用获得的并行度数稳定执行,即本发明实现了对数据库并行度合理高效的控制。
以下对步骤S103判断是否存在高优先级的存储过程准备使用数据库的并行度的具体实现过程进行说明。步骤S103的具体实现过程可以包括:获取第一并行度数和第二并行度数,其中,第一并行度数是为当前正在执行的存储过程分配的并行度数,第二并行度是数据库当前被占用的并行度数;基于第一并行度数和第二并行度数,判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数。
在一种可能的实现方式中,获取第一并行度数可以包括:从目标登记表中获取第一并行度数,目标登记表中登记有为正在执行的存储过程分配的并行度数。
需要说明的是,在存储过程未获得为其配置的并行度时,即未为该存储过程分配数据库的并行度时,该存储过程在目标登记表中登记的并行度数为0,当数据库的剩余并行度满足该存储过程执行所需的并行度,为该存储过程分配并行度时,存储过程在目标登记表中登记的并行度修改为该存储过程执行所需的并行度,即预先为该存储过程配置的并行度数。目标登记表的作用在于统计当前存储过程真正使用的并行度的总数。
存储过程的状态可以包括:运行初始状态、准备运行状态和正在运行状态。如果一存储过程处于准备运行状态,并且,该存储过程有并行度需求,则表明该存储过程准备使用数据库的并行度。基于此,判断是否存在高优先级的存储过程准备使用数据库的并行度,包括:判断是否存在处于准备运行状态、有并行度需求,且优先级高于为目标存储过程配置的优先级的存储过程;如果是,则判定存在高优先级的存储过程准备使用数据库的并行度,否则,判定不存在高优先级的存储过程准备使用数据库的并行度。
在本发明实施例中,在判定存在高优先级的存储过程准备使用数据库的并行度时,让高优先级的存储过程先获得并行度,而让目标存储过程进行等待,直至不存在高优先级的存储过程准备使用数据库。
在判定不存在高优先级的存储过程准备使用数据库时,基于第一并行度数和第二并行度数,判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数,具体的,判断是否存在处于运行初始状态且优先级高于为目标存储过程配置的优先级的存储过程,如果是,则进一步判断目标存储过程执行所需的并行度数与第一并行度数的和是否小于或等于目标并行度数,如果是,则进一步判断目标存储过程执行所需的并行度数与第二并行度数的和是否小于或等于目标并行度数,如果是,则判定数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数。其中,目标并行度数为数据库总的并行度数乘以预设的预留并行度比率。
可以理解的是,存储过程处于运行初始状态,表明该存储过程当前并不能执行,而只有当其处于准备运行状态时,其才能够执行,当存在处于运行初始状态且优先级高于为目标存储过程配置的优先级的存储过程时,表明存在高优先级的存储过程,但该存储过程还未准备运行,本实施例为了保证高优先级的存储过程先执行,考虑为该存储过程预留并行度,基于此,本实施例引入预留并行度比率,并将数据库总的并行度数乘以预留并行度比率获得目标并行度数,将目标存储过程执行所需的并行度数与第一并行度数的和、目标存储过程执行所需的并行度数与第二并行度数的和与目标并行度进行比较,而不是直接与数据库总的并行度数比较。
如果不存在处于运行初始状态且优先级高于为目标存储过程配置的优先级的存储过程,也不存在处于准备运行状态且优先级高于为目标存储过程配置的优先级的存储过程,则判断目标存储过程执行所需的并行度数与第一并行度数的和是否小于或等于数据库总的并行度数,如果是,则进一步判断目标存储过程执行所需的并行度数与第二并行度数的和是否小于或等于数据库总的并行度数,如果是,则判定数据库的剩余并行度数满足目标存储过程执行所需的并行度数。
另外,需要说明的是,为了防止并发执行多个存储过程时,无法准确判断数据库实际使用的并行度数,即为了保证能够准确计算数据库实际使用的并行度数,可预先设置一存储过程记录表,该存储过程记录表存储有一条记录,如果当前需要执行的存储过程为目标存储过程,则将存储过程记录表中的该记录锁定,从而保证当前只有一个存储过程进行已使用并行度的计算,在目标存储过程获得配置的并行度后,释放存储过程记录表中对该记录的锁定。
本发明实施例提供的数据库并行度的控制方法还包括:为目标存储过程分配并行度时,在目标登记表中登记为目标存储过程分配的并行度数;在目标存储过程执行完毕之后,将目标存储过程占用的并行度从目标登记表中释放。
与上述方法相对应,本发明实施例还提供了一种数据库并行度的控制装置,请参阅图2,示出了该数据库并行度的控制装置20的结构示意图,可以包括:第一判断模块201、获取模块202、第二判断模块203、第三判断模块204和分配模块205。其中:
第一判断模块201,用于当目标存储过程需要执行时,判断是否预先为所述目标存储过程配置了并行等待开关。
获取模块202,用于在第一判断模块201判定预先为目标存储过程配置了并行等待开关时,获取预先为存储过程配置的优先级和目标存储过程执行所需的并行度数。
第二判断模块203,用于判断是否存在高优先级的存储过程准备使用数据库的并行度。
其中,高优先级的存储过程为优先级高于为所述目标存储过程配置的优先级的存储过程。
第二判断模块203,还用于在判定存在高优先级的存储过程准备使用数据库的并行度时,等待预设时间间隔,再判断是否存在高优先级的存储过程准备使用数据库的并行度。
第三判断模块204,用于在第二判断模块203判定不存在高优先级的存储过程准备使用数据库的并行度时,判断数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数。
分配模块205,用于在第三判断模块204判定数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数时,按目标存储过程执行所需的并行度数为所述目标存储过程分配并行度,以使目标存储过程使用分配的并行度执行。
需要说明的是,若经第二判断模块203判断,存在所述高优先级的存储过程准备使用数据库的并行度,或者,经第三判断模块204判断,数据库的剩余并行度数不满足目标存储过程执行所需的并行度数,则等待预设时间间隔,然后再由第二判断模块203判断是否存在高优先级的存储过程准备使用数据库的并行度。
本发明实施例提供的数据库并行度的控制装置,通过预先为存储过程配置并行等待开关、并行度数和优先级,使存储过程在执行时能够按照优先级高低获得配置的并行度,从而使用获得的并行度数稳定执行,即本发明实施例提供的数据库并行度的控制装置实现了对数据库并行度合理高效的控制。
在本发明实施例一种可能的实现方式中,第三判断模块204可以包括:获取子模块和判断子模块。
获取子模块,用于获取第一并行度数和第二并行度数。其中,第一并行度数是为当前正在执行的存储过程分配的并行度数,第二并行度是数据库当前被占用的并行度数。
判断子模块,用于基于第一并行度数和第二并行度数,判断数据库的剩余并行度数是否满足目标存储过程执行所需的并行度数。
存储过程的状态包括:运行初始状态、准备运行状态、正在运行状态和运行成功状态。则在本发明实施例一种可能的实现方式中,第二判断模块,具体用于判断是否存在处于准备运行状态、有并行度需求,且优先级高于为目标存储过程配置的优先级的存储过程,如果是,则判定存在高优先级的存储过程准备使用数据库的并行度,否则,判定不存在高优先级的存储过程准备使用数据库的并行度。
进一步地,上述的判断子模块可以包括:第一判断子单元、第二判断子单元、第三判断子单元。其中:
第一判断子单元,用于判断是否存在处于运行初始状态且优先级高于为所述目标存储过程配置的优先级的存储过程。
第二判断子单元,用于当第一判断子单元判断出存在处于运行初始状态且优先级高于为所述目标存储过程配置的优先级的存储过程时,判断所述目标存储过程执行所需的并行度数与所述第一并行度数的和是否小于或等于目标并行度数。
其中,目标并行度数为所述数据库总的并行度数乘以预设的预留并行度比率,预留并行比例为大于0小于1的数;
第三判断子单元,用于当第二判断子单元判断出所述目标存储过程执行所需的并行度数与所述第一并行度数的和小于或等于目标并行度数时,判断所述目标存储过程执行所需的并行度数与所述第二并行度数的和是否小于或等于所述目标并行度数,如果是,则判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数,否则,判定所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数。
上述的判断子模块还可以包括:第四判断子模块和第五判断子模块。
第四判断子模块,用于当第一判断子单元判断出不存在处于运行初始状态且优先级高于为目标存储过程配置的优先级的存储过程时,判断所述目标存储过程执行所需的并行度数与所述第一并行度数的和是否小于或等于数据库总的并行度。
第五判断子模块,用于在第四判断子模块判断出目标存储过程执行所需的并行度数与第一并行度数的和小于或等于数据库总的并行度时,判断所述目标存储过程执行所需的并行度数与所述第二并行度数的和是否小于或等于所述数据库总的并行度数,如果是,则判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数,否则,判定所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数。
在本发明实施例一种可能的实现方式中,上述的获取子模块,具体用于从目标登记表中获取所述第一并行度数,所述目标登记表中登记有为所述正在执行的存储过程分配的并行度数。
上述的数据库并行度的控制装置还可以包括:登记模块和释放模块。
登记模块,用于在分配模块205为目标存储过程分配并行度时,在目标登记表中登记为目标存储过程分配的并行度数。
释放模块,用于在目标存储过程执行完毕之后,将目标存储过程占用的并行度从目标登记表中释放。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据库并行度的控制方法,其特征在于,包括:
当目标存储过程需要执行时,判断是否预先为所述目标存储过程配置了并行等待开关;
如果是,则获取预先为存储过程配置的优先级和所述目标存储过程执行所需的并行度数;
判断是否存在高优先级的存储过程准备使用数据库的并行度,其中,所述高优先级的存储过程为优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则等待预设时间间隔,然后执行所述判断是否存在高优先级的存储过程准备使用数据库的并行度,如果否,则判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数;
如果是,则按所述目标存储过程执行所需的并行度数为所述目标存储过程分配并行度,以使所述目标存储过程使用分配的并行度执行。
2.根据权利要求1所述的数据库并行度的控制方法,其特征在于,所述判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,包括:
获取第一并行度数和第二并行度数,其中,所述第一并行度数是为当前正在执行的存储过程分配的并行度数,所述第二并行度是所述数据库当前被占用的并行度数;
基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数。
3.根据权利要求2所述的数据库并行度的控制方法,其特征在于,存储过程的状态包括:运行初始状态、准备运行状态、正在运行状态和运行成功状态;
所述判断是否存在高优先级的存储过程准备使用数据库的并行度,包括:
判断是否存在处于准备运行状态、有并行度需求,且优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则判定存在所述高优先级的存储过程准备使用数据库的并行度,否则,判定不存在所述高优先级的存储过程准备使用数据库的并行度。
4.根据权利要求3所述的数据库并行度的控制方法,其特征在于,所述基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,包括:
判断是否存在处于运行初始状态且优先级高于为所述目标存储过程配置的优先级的存储过程;
如果是,则判断所述目标存储过程执行所需的并行度数与所述第一并行度数的和是否小于或等于目标并行度数,其中,所述目标并行度数为所述数据库总的并行度数乘以预设的预留并行度比率,所述预留并行度比率为大于0小于1的数;
如果是,则进一步判断所述目标存储过程执行所需的并行度数与所述第二并行度数的和是否小于或等于所述目标并行度数;
如果是,则判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数,否则,判定所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数。
5.根据权利要求4所述的数据库并行度的控制方法,其特征在于,所述基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数,还包括:
若不存在处于运行初始状态且优先级高于为所述目标存储过程配置的优先级的存储过程,则判断所述目标存储过程执行所需的并行度数与所述第一并行度数的和是否小于或等于数据库总的并行度;
如果是,则进一步判断所述目标存储过程执行所需的并行度数与所述第二并行度数的和是否小于或等于所述数据库总的并行度数;
如果是,则判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数,否则,判定所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数。
6.根据权利要求2所述的数据库并行度的控制方法,其特征在于,所述获取第一并行度数,包括:
从目标登记表中获取所述第一并行度数,所述目标登记表中登记有为所述正在执行的存储过程分配的并行度数;
所述数据库并行度的控制方法还包括:
为所述目标存储过程分配并行度时,在所述目标登记表中登记为所述目标存储过程分配的并行度数;
在所述目标存储过程执行完毕之后,将所述目标存储过程占用的并行度从所述目标登记表中释放。
7.根据权利要求1-6中任意一项所述的数据库并行度的控制方法,其特征在于,所述方法还包括:
若存在所述高优先级的存储过程准备使用数据库的并行度,或者,所述数据库的剩余并行度数不满足所述目标存储过程执行所需的并行度数,则等待预设时间间隔,然后执行所述判断是否存在高优先级的存储过程准备使用数据库的并行度。
8.一种数据库并行度的控制装置,其特征在于,包括:第一判断模块、获取模块、第二判断模块、第三判断模块和分配模块;
所述第一判断模块,用于当目标存储过程需要执行时,判断是否预先为所述目标存储过程配置了并行等待开关;
所述获取模块,用于在所述第一判断模块判定预先为所述目标存储过程配置了并行等待开关时,获取预先为存储过程配置的优先级和所述目标存储过程执行所需的并行度数;
所述第二判断模块,用于判断是否存在高优先级的存储过程准备使用数据库的并行度,其中,所述高优先级的存储过程为优先级高于为所述目标存储过程配置的优先级的存储过程;
所述第二判断模块,还用于在判定存在所述高优先级的存储过程准备使用数据库的并行度时,等待预设时间间隔,再判断是否存在高优先级的存储过程准备使用数据库的并行度;
所述第三判断模块,用于在所述第二判断模块判定不存在所述高优先级的存储过程准备使用数据库的并行度时,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数;
所述分配模块,用于在所述第三判断模块判定所述数据库的剩余并行度数满足所述目标存储过程执行所需的并行度数时,按所述目标存储过程执行所需的并行度数为所述目标存储过程分配并行度,以使所述目标存储过程使用分配的并行度执行。
9.根据权利要求8所述的数据库并行度的控制装置,其特征在于,所述第三判断模块,包括:获取子模块和判断子模块;
所述获取子模块,用于获取第一并行度数和第二并行度数,其中,所述第一并行度数是为当前正在执行的存储过程分配的并行度数,所述第二并行度是所述数据库当前被占用的并行度数;
所述判断子模块,用于基于所述第一并行度数和所述第二并行度数,判断所述数据库的剩余并行度数是否满足所述目标存储过程执行所需的并行度数。
10.根据权利要求9所述的数据库并行度的控制装置,其特征在于,所述存储过程的状态包括:运行初始状态、准备运行状态、正在运行状态和运行成功状态;
所述第二判断模块,具体用于判断是否存在处于准备运行状态、有并行度需求,且优先级高于为所述目标存储过程配置的优先级的存储过程,如果是,则判定存在高优先级的存储过程准备使用数据库的并行度,否则,判定不存在高优先级的存储过程准备使用数据库的并行度。
CN201711079114.XA 2017-11-06 2017-11-06 一种数据库并行度的控制方法及装置 Active CN107862042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711079114.XA CN107862042B (zh) 2017-11-06 2017-11-06 一种数据库并行度的控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711079114.XA CN107862042B (zh) 2017-11-06 2017-11-06 一种数据库并行度的控制方法及装置

Publications (2)

Publication Number Publication Date
CN107862042A CN107862042A (zh) 2018-03-30
CN107862042B true CN107862042B (zh) 2020-12-18

Family

ID=61700845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711079114.XA Active CN107862042B (zh) 2017-11-06 2017-11-06 一种数据库并行度的控制方法及装置

Country Status (1)

Country Link
CN (1) CN107862042B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618899B (zh) * 2019-09-25 2022-02-22 浙江中控技术股份有限公司 一种数据存储方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290668B (zh) * 2008-06-16 2011-08-17 中国移动通信集团湖北有限公司 一种分时作业动态调度方法和装置
WO2010032205A1 (en) * 2008-09-17 2010-03-25 Nxp B.V. Electronic circuit comprising a plurality of processing devices
CN101694632A (zh) * 2009-10-19 2010-04-14 浪潮电子信息产业股份有限公司 一种用于数据库集群系统按需执行资源计划的方法
CN103049245B (zh) * 2012-10-25 2015-12-02 浪潮电子信息产业股份有限公司 一种基于中央处理器cpu多核平台的软件性能优化方法
CN103761147B (zh) * 2014-01-15 2017-11-21 清华大学 一种云平台中计算实例的管理方法及系统
CN104699464B (zh) * 2015-03-26 2017-12-26 中国人民解放军国防科学技术大学 一种基于依赖网格的指令级并行调度方法
CN107066625A (zh) * 2017-05-12 2017-08-18 郑州云海信息技术有限公司 一种Oracle数据库表统计信息收集方法及系统

Also Published As

Publication number Publication date
CN107862042A (zh) 2018-03-30

Similar Documents

Publication Publication Date Title
US9027028B2 (en) Controlling the use of computing resources in a database as a service
US10686728B2 (en) Systems and methods for allocating computing resources in distributed computing
CN108984264B (zh) 虚拟gpu的实现方法、装置及系统
CN106406983B (zh) 一种集群中的任务调度方法及装置
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
US7302533B2 (en) System and method for optimally configuring software systems for a NUMA platform
CN108701059A (zh) 多租户资源分配方法和系统
CN108762931A (zh) 基于分布式调度系统的任务调度方法、服务器及存储介质
CN106557366B (zh) 任务分发方法、装置及系统
US20150128136A1 (en) Graphics processing unit controller, host system, and methods
US20210200765A1 (en) Connection pools for parallel processing applications accessing distributed databases
CN111225007B (zh) 数据库连接方法、装置和系统
CN112506821B (zh) 一种系统总线接口请求仲裁方法及相关组件
CN113010315A (zh) 资源分配方法及分配装置、计算机可读存储介质
CA3127885A1 (en) Scheduling method and device for query request and computer system
CN107862042B (zh) 一种数据库并行度的控制方法及装置
CN110231977A (zh) 数据库的处理方法、装置、存储介质及电子装置
CN111124674A (zh) 一种硬件资源的管理方法、存储介质及终端
US20150212859A1 (en) Graphics processing unit controller, host system, and methods
WO2021169287A1 (zh) 主从架构配置方法、装置、设备以及计算机可读存储介质
US20140047454A1 (en) Load balancing in an sap system
CN109426561A (zh) 一种任务处理方法、装置及设备
US8347299B2 (en) Association and scheduling of jobs using job classes and resource subsets
CN110851245A (zh) 一种分布式异步任务调度方法及电子设备
CN107370691B (zh) 一种资源访问方法和终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant