数据库管理方法、系统、计算机装置及可读存储介质与流程

文档序号:18009761发布日期:2019-06-25 23:51阅读:211来源:国知局
数据库管理方法、系统、计算机装置及可读存储介质与流程

本发明涉及数据库领域,尤其涉及一种数据库管理方法、系统、计算机装置及计算机可读存储介质。



背景技术:

数据库系统是上层应用普遍使用的数据管理系统,在数据库系统中查询操作所占的比例最大。数据库中的一些数据库表每天可能会大量插入数据(比如数据采集表),数据库表刚上线时由于其记录量不大,其查询响应时间很快,随着数据库表数据的增加,查询该数据库表的响应时间变得越来越长,当数据库表数据量达到一定的量量级(如百万/千万级)时,查询该数据库表会变得越来越慢,影响用户使用体验。



技术实现要素:

鉴于上述,本发明提供一种数据库管理方法、系统、计算机装置及计算机可读存储介质,其可准确发现数据库表的数据量过大的问题,以便及时采取相应的管控措施。

本申请一实施方式提供一种数据库管理方法,所述方法包括:

为目标数据库表建立监控任务,并配置所述监控任务的运行频次及启动时间点,其中所述监控任务包括至少一条sql查询语句;

根据所述监控任务的运行频次及启动时间点在所述目标数据库表中运行所述监控任务;

获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间;

判断每一所述sql查询语句的响应时间是否大于对应预设执行时间,及判断所述监控任务的总响应时间是否大于预设总执行时间,其中每一所述sql查询语句一一对应设置有一预设执行时间;及

根据所述判断结果输出执行时间超时的sql查询语句清单,并推送与所述判断结果匹配的管控建议。

优选地,所述监控任务为按照预设查询语句关键字收集得到的sql脚本,所述sql脚本包括至少一条sql查询语句。

优选地,所述获取所述监控任务在所述目标数据库表中执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间的步骤包括:

获取所述目标数据库表的历史数据量,及在所述历史数据量下所述监控任务执行完一次的总响应时间及每一所述sql查询语句的响应时间;

建立一神经网络模型,并将所述历史数据量下所述监控任务执行完一次的总响应时间及每一所述sql查询语句的响应时间作为训练样本数据;

利用所述训练样本数据对所述神经网络模型进行训练,得到一响应时间预测模型;及

输入所述目标数据库表的当前数据量至所述响应时间预测模型,得到所述目标数据库表在当前数据量下的总响应时间及每一所述sql查询语句的响应时间。

优选地,所述利用所述训练样本数据对所述神经网络模型进行训练,得到一响应时间预测模型的步骤包括:

将所述训练样本数据划分为训练集及验证集;

利用所述训练集对所述神经网络模型进行训练;

利用所述验证集对训练后的神经网络模型进行验证,并根据每一验证结果统计得到一模型预测准确率;

判断所述模型预测准确率是否小于预设阈值;及

当所述模型预测准确率不小于所述预设阈值时,将训练完成的所述神经网络模型作为所述响应时间预测模型。

优选地,所述判断所述模型预测准确率是否小于预设阈值的步骤之后还包括:

当所述模型预测准确率小于所述预设阈值时,调整所述神经网络模型的参数,并利用所述训练集重新对调整后的神经网络模型进行训练;

利用所述验证集对重新训练的神经网络模型进行验证,并根据每一验证结果重新统计得到模型预测准确率,并判断重新统计得到的模型预测准确率是否小于预设阈值;

当所述重新统计得到的模型预测准确率不小于所述预设阈值时,将所述重新训练得到的神经网络模型作为所述响应时间预测模型;及

当所述重新统计得到的模型预测准确率小于所述预设阈值时,重复上述步骤直至通过所述验证集验证得到的模型预测准确率不小于所述预设阈值;

其中,所述神经网络模型的参数包括总层数、每一层的神经元数。

优选地,所述根据所述判断结果输出执行时间超时的sql查询语句清单,并推送与所述判断结果匹配的管控建议的步骤包括:

当存在至少一条sql查询语句的响应时间大于对应的预设执行时间且所述监控任务的总响应时间不大于所述预设总执行时间时,输出执行时间超时的sql查询语句清单,并推送为所述目标数据库表新增表索引的管控建议。

优选地,所述根据所述判断结果输出执行时间超时的sql查询语句清单,并推送与所述判断结果匹配的管控建议的步骤包括:

当存在至少一条sql查询语句的响应时间大于对应的预设执行时间且所述监控任务的总响应时间大于所述预设总执行时间时,输出执行时间超时的sql查询语句清单,并推送为所述目标数据库表新增表索引和/或对所述目标数据库表进行数据迁移的管控建议。

本申请一实施方式提供一种数据库管理系统,所述系统包括:

建立模块,用于为目标数据库表建立监控任务,并配置所述监控任务的运行频次及启动时间点,其中所述监控任务包括至少一条sql查询语句;

运行模块,用于根据所述监控任务的运行频次及启动时间点在所述目标数据库表中运行所述监控任务;

获取模块,用于获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间;

判断模块,用于判断每一所述sql查询语句的响应时间是否大于对应预设执行时间,及判断所述监控任务的总响应时间是否大于预设总执行时间,其中每一所述sql查询语句一一对应设置有一预设执行时间;及

输出模块,用于根据所述判断结果输出执行时间超时的sql查询语句清单,并推送与所述判断结果匹配的管控建议。

本申请一实施方式提供一种计算机装置,所述计算机装置包括处理器及存储器,所述存储器上存储有若干计算机程序,所述处理器用于执行存储器中存储的计算机程序时实现如前面所述的数据库管理方法的步骤。

本申请一实施方式提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前面所述的数据库管理方法的步骤。

上述数据库管理方法、系统、计算机装置及计算机可读存储介质,通过为需进行监控的目标数据库表建立监控任务,并配置监控任务的运行参数,在获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间,并根据获取结果来判断所述目标数据库表是否需要进行调整,可以实现在确定所述目标数据表需要进行调整时精准定位是哪张数据库表表,哪条sql查询语句的问题,进而有针对性地进行处理,保证数据库正常运行,提升用户使用体验。

附图说明

为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中数据库管理方法的步骤流程图。

图2为本发明一实施例中数据库管理系统的功能模块图。

图3为本发明一实施例中计算机装置示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施方式及实施方式中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。

优选地,本发明的数据库管理方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述计算机装置可以是桌上型计算机、笔记本电脑、平板电脑、服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

实施例一:

图1是本发明数据库管理方法较佳实施例的步骤流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。

参阅图1所示,所述数据库管理方法具体包括以下步骤。

步骤s11、为目标数据库表建立监控任务,并配置所述监控任务的运行频次及启动时间点,其中所述监控任务包括至少一条sql查询语句。

在一实施方式中,所述监控任务为按照预设规则收集得到的sql脚本,所述sql脚本包括至少一条sql查询语句。所述预设规则可以根据实际的监测需求进行设定,比如所述预设规则可以是预设查询语句关键字,通过预设查询语句关键字从一sql语句库中收集得到所述sql脚本。所述目标数据库表优选为需要监控的数据库中的一数据表。所述数据库可以包括一个或者多个数据库表,每一数据库表可以对应建立一监控任务,以进行响应时间监测。当在一目标数据库表运行所述sql查询语句时,可以实现在所述目标数据库表进行存取数据、查询数据、更新数据等操作。

在一实施方式中,所述运行频次可以是指每日运行所述监控任务的频次,例如每日执行4次所述sql脚本。所述启动时间点用于设定每次执行所述监控任务的时间节点,所述启动时间点优选设置在所述目标数据库处于空闲的时段,避免监测数据库表数据量不准确。

步骤s12、根据所述监控任务的运行频次及启动时间点在所述目标数据库表中运行所述监控任务。

在一实施方式中,当设定好所述监控任务的运行频次及启动时间点后,可以利用jekins来在所述目标数据库表中执行所述监控任务,也可以利用其它能监控持续重复工作的软件工具。

步骤s13,获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间。

在一实施方式中,在执行所述监控任务过程中,每执行一条sql查询语句,记录该sql查询语句的响应时间,所述响应时间可以是从开始执行该sql查询语句到接收到对应的返回结果的时间。所述监控任务的总响应时间是每条sql查询语句的响应时间总和。

在一实施方式中,由于数据库表可能会随时存在其它用户正在对其进行操作,导致运行所述监控任务而统计得到的响应时间不准确,可以通过建立一响应时间预测模型来根据数据库表的当前数据量预测得到响应时间。建立所述响应时间预测模型并利用该模型预测得到响应时间可以通过以下方式实现:获取所述目标数据库表的历史数据量,及在所述历史数据量下所述监控任务执行完一次的总响应时间及每一所述sql查询语句的响应时间;建立一神经网络模型,并将所述历史数据量下所述监控任务执行完一次的总响应时间及每一所述sql查询语句的响应时间作为训练样本数据;利用所述训练样本数据对所述神经网络模型进行训练,得到一响应时间预测模型;及输入所述目标数据库表的当前数据量至所述响应时间预测模型,得到所述目标数据库表在当前数据量下的总响应时间及每一所述sql查询语句的响应时间。

在一实施方式中,所述神经网络模型包括输入层、多个隐藏层及输出层。输入层用于接收所述目标数据库表在多个不同数据量下的响应时间训练样本数据,每一隐藏层包括相应多个节点(神经元),每一隐藏层中的每一节点被配置成对来自所述模型中的相邻下层的至少一个节点的输出执行线性或非线性变换。其中,上层隐藏层的节点的输入可以基于相邻下层中的一个节点或若干节点的输出。每个隐藏层具有对应的权值,其中该权值是基于训练样本数据获得的。在对模型进行训练时,可以通过利用有监督的学习过程来进行模型的预训练,得到各个隐藏层的初始权值。对各隐藏层的权值的精细调节,可以通过采用向后传播(backpropagation,bp)算法来进行,输出层用于接收来自最后一层隐藏层的输出信。

在一实施方式中,所述训练样本数据可以被划分为训练集以及验证集。其中,训练集用于对神经网络模型进行训练,验证集用于对训练后的神经网络模型进行验证。具体地,先利用所述训练集对神经网络模型进行训练得到一中间模型,将所述验证集中的训练样本数据输入至所述中间模型中进行响应时间估算验证(如果估算响应时间与实际响应时间差值在预设范围内,验证通过),根据每一验证结果可以统计得到一模型预测准确率,判断所述模型预测准确率是否小于预设阈值。当所述模型预测准确率不小于所述预设阈值,表明此中间模型预测效果较好,满足使用需求,可以将所述中间模型作为所述响应时间预测模型。当模型预测准确率小于所述预设阈值时,表明此中间模型预测效果不好,需要进行改善,此时调整所述神经网络模型的参数,并利用所述训练集重新对调整后的神经网络模型进行训练得到一新的中间模型,然后再次利用所述验证集对重新得到的中间模型进行验证得到一新的模型预测准确率。所述调整所述神经网络模型的参数可以是调整神经网络模型的总层数、调整每一层的神经元数等。所述预设阈值可以根据实际使用需求进行设定(例如预设阈值为90%)。

在一实施方式中,如果该新的模型预测准确率仍然小于所述预设阈值,需要再次重复上述步骤直至通过验证集得到的模型预测准确率不小于所述预设阈值。当得到可用的响应时间预测模型后,输入所述目标数据库表的当前数据量至所述响应时间预测模型,即可预测得到当前数据量下所述监控任务执行完一次的总响应时间及所述监控任务中每条sql查询语句的响应时间。

步骤s14、判断每一所述sql查询语句的响应时间是否大于对应预设执行时间,及判断所述监控任务的总响应时间是否大于预设总执行时间,其中每一所述sql查询语句一一对应设置有一预设执行时间。

在一实施方式中,将每一所述sql查询语句的响应时间分别与其对应的预设执行时间进行比较,进而来实现判断每一所述sql查询语句的响应时间是否大于对应预设执行时间;对每一所述sql查询语句的响应时间进行求和运算得到总响应时间,并将计算得到的总响应时间与预设总执行时间进行比较,来判断所述监控任务的总响应时间是否大于预设总执行时间。

在一实施方式中,每一所述sql查询语句的预设执行时间、所述预设总执行时间可以根据实际需求进行设定。比如,所述监控任务中的第一sql查询语句设置的预设执行时间为8ms,第二sql查询语句设置的预设执行时间为20ms,第三sql查询语句设置的预设执行时间为8ms。

步骤s15、根据所述判断结果输出执行时间超时的sql查询语句清单,并推送与所述判断结果匹配的管控建议。

在一实施方式中,当存在至少一条sql查询语句的响应时间大于对应的预设执行时间且所述监控任务的总响应时间不大于所述预设总执行时间时,输出执行时间超时的sql查询语句清单,并推送为所述目标数据库表新增表索引的管控建议。当存在至少一条sql查询语句的响应时间大于对应的预设执行时间且所述监控任务的总响应时间大于所述预设总执行时间时,输出执行时间超时的sql查询语句清单,并推送为所述目标数据库表新增表索引和/或对所述目标数据库表进行数据迁移的管控建议。

在一实施方式中,所述执行时间超时的sql查询语句清单可以通过邮件的方式发送给运维人员。所述数据迁移可以是指将目标数据库表中指定的数据迁移至其他历史表,进而降低所述目标数据库表的当前数据量。

在一实施方式中,在进行表索引新增的过程中,需要查找新的数据索引项应该插入的位置,再根据待插入新数据索引项的节点的存储空间确定是否需要分裂该节点,并且在需要分裂该节点的情况下,还需考虑该节点的父节点的存储空间,以确定是否需要分裂该父节点。如此循环反复处理,以确保索引的平衡。

具体地,为目标数据库表新增的数据构建一索引项,查找该索引项在原索引中插入的位置,即查找指定的节点;判断该节点的存储空间是否足够;在判断出该节点的存储空间足够的情况下,将新构建的索引项插入该节点;在判断出该节点的存储空间不足的情况下,分裂该节点。在分裂该节点时,需要重新分配一段连续的存储空间,用于保存与该节点具有相同父节点的同级节点。另外,分裂该节点时,还需判断该节点的父节点的存储空间是否足够,并且在判断出该父节点的存储空间足够的情况下,可以直接修改该父节点指向节点的指针,以完成索引更新,而在判断出该父节点的存储空间不足够的情况下,则需要继续分裂该父节点。

上述数据库管理方法,通过为需进行监控的目标数据库表建立监控任务,并配置监控任务的运行参数,在获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间,并根据获取结果来判断所述目标数据库表是否需要进行调整,可以实现在确定所述目标数据表需要进行调整时精准定位是哪张数据库表表,哪条sql查询语句的问题,进而有针对性地进行处理,保证数据库正常运行,提升用户使用体验。

实施例二:

图2为本发明数据库管理系统较佳实施例的功能模块图。

参阅图2所示,所述数据库管理系统10可以包括建立模块101、运行模块102、获取模块103、判断模块104、输出模块105。

所述建立模块101用于为目标数据库表建立监控任务,并配置所述监控任务的运行频次及启动时间点,其中所述监控任务包括至少一条sql查询语句。

在一实施方式中,所述监控任务为按照预设规则收集得到的sql脚本,所述sql脚本包括至少一条sql查询语句。所述预设规则可以根据实际的监测需求进行设定,比如所述预设规则可以是预设查询语句关键字,通过预设查询语句关键字从一sql语句库中收集得到所述sql脚本。所述目标数据库表优选为需要监控的数据库中的一数据表。所述数据库可以包括一个或者多个数据库表,每一数据库表可以对应建立一监控任务,以进行响应时间监测。当在一目标数据库表运行所述sql查询语句时,可以实现在所述目标数据库表进行存取数据、查询数据、更新数据等操作。

在一实施方式中,所述运行频次可以是指每日运行所述监控任务的频次,例如每日执行4次所述sql脚本。所述启动时间点用于设定每次执行所述监控任务的时间节点,所述启动时间点优选设置在所述目标数据库处于空闲的时段,避免监测数据库表数据量不准确。

所述运行模块102用于根据所述监控任务的运行频次及启动时间点在所述目标数据库表中运行所述监控任务。

在一实施方式中,当设定好所述监控任务的运行频次及启动时间点后,所述运行模块102可以利用jekins来在所述目标数据库表中执行所述监控任务,也可以利用其它能监控持续重复工作的软件工具。

所述获取模块103用于获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间。

在一实施方式中,在执行所述监控任务过程中,每执行一条sql查询语句,所述获取模块103记录该sql查询语句的响应时间,所述响应时间可以是从开始执行该sql查询语句到接收到对应的返回结果的时间。所述监控任务的总响应时间是每条sql查询语句的响应时间总和。

在一实施方式中,由于数据库表可能会随时存在其它用户正在对其进行操作,导致运行所述监控任务而统计得到的响应时间不准确,所述获取模块103可以通过建立一响应时间预测模型来根据数据库表的当前数据量预测得到响应时间。所述获取模块103建立所述响应时间预测模型并利用该模型预测得到响应时间可以通过以下方式实现:获取所述目标数据库表的历史数据量,及在所述历史数据量下所述监控任务执行完一次的总响应时间及每一所述sql查询语句的响应时间;建立一神经网络模型,并将所述历史数据量下所述监控任务执行完一次的总响应时间及每一所述sql查询语句的响应时间作为训练样本数据;利用所述训练样本数据对所述神经网络模型进行训练,得到一响应时间预测模型;及输入所述目标数据库表的当前数据量至所述响应时间预测模型,得到所述目标数据库表在当前数据量下的总响应时间及每一所述sql查询语句的响应时间。

在一实施方式中,所述神经网络模型包括输入层、多个隐藏层及输出层。输入层用于接收所述目标数据库表在多个不同数据量下的响应时间训练样本数据,每一隐藏层包括相应多个节点(神经元),每一隐藏层中的每一节点被配置成对来自所述模型中的相邻下层的至少一个节点的输出执行线性或非线性变换。其中,上层隐藏层的节点的输入可以基于相邻下层中的一个节点或若干节点的输出。每个隐藏层具有对应的权值,其中该权值是基于训练样本数据获得的。在对模型进行训练时,可以通过利用有监督的学习过程来进行模型的预训练,得到各个隐藏层的初始权值。对各隐藏层的权值的精细调节,可以通过采用向后传播(backpropagation,bp)算法来进行,输出层用于接收来自最后一层隐藏层的输出信。

在一实施方式中,所述训练样本数据可以被划分为训练集以及验证集。其中,训练集用于对神经网络模型进行训练,验证集用于对训练后的神经网络模型进行验证。具体地,先利用所述训练集对神经网络模型进行训练得到一中间模型,将所述验证集中的训练样本数据输入至所述中间模型中进行响应时间估算验证(如果估算响应时间与实际响应时间差值在预设范围内,验证通过),根据每一验证结果可以统计得到一模型预测准确率,判断所述模型预测准确率是否小于预设阈值。当所述模型预测准确率不小于所述预设阈值,表明此中间模型预测效果较好,满足使用需求,可以将所述中间模型作为所述响应时间预测模型。当模型预测准确率小于所述预设阈值时,表明此中间模型预测效果不好,需要进行改善,此时调整所述神经网络模型的参数,并利用所述训练集重新对调整后的神经网络模型进行训练得到一新的中间模型,然后再次利用所述验证集对重新得到的中间模型进行验证得到一新的模型预测准确率。所述调整所述神经网络模型的参数可以是调整神经网络模型的总层数、调整每一层的神经元数等。所述预设阈值可以根据实际使用需求进行设定(例如预设阈值为90%)。

在一实施方式中,如果该新的模型预测准确率仍然小于所述预设阈值,需要再次重复上述步骤直至通过验证集得到的模型预测准确率不小于所述预设阈值。当得到可用的响应时间预测模型后,输入所述目标数据库表的当前数据量至所述响应时间预测模型,即可预测得到当前数据量下所述监控任务执行完一次的总响应时间及所述监控任务中每条sql查询语句的响应时间。

所述判断模块104用于判断每一所述sql查询语句的响应时间是否大于对应预设执行时间,及判断所述监控任务的总响应时间是否大于预设总执行时间,其中每一所述sql查询语句一一对应设置有一预设执行时间。

在一实施方式中,所述判断模块104将每一所述sql查询语句的响应时间分别与其对应的预设执行时间进行比较,进而来实现判断每一所述sql查询语句的响应时间是否大于对应预设执行时间;所述判断模块104还对每一所述sql查询语句的响应时间进行求和运算得到总响应时间,并将计算得到的总响应时间与预设总执行时间进行比较,来判断所述监控任务的总响应时间是否大于预设总执行时间。

在一实施方式中,每一所述sql查询语句的预设执行时间、所述预设总执行时间可以根据实际需求进行设定。比如,所述监控任务中的第一sql查询语句设置的预设执行时间为8ms,第二sql查询语句设置的预设执行时间为20ms,第三sql查询语句设置的预设执行时间为8ms。

所述输出模块105用于根据所述判断结果输出执行时间超时的sql查询语句清单,并推送与所述判断结果匹配的管控建议。

在一实施方式中,当存在至少一条sql查询语句的响应时间大于对应的预设执行时间且所述监控任务的总响应时间不大于所述预设总执行时间时,所述输出模块105输出执行时间超时的sql查询语句清单,并推送为所述目标数据库表新增表索引的管控建议。当存在至少一条sql查询语句的响应时间大于对应的预设执行时间且所述监控任务的总响应时间大于所述预设总执行时间时,所述输出模块105输出执行时间超时的sql查询语句清单,并推送为所述目标数据库表新增表索引和/或对所述目标数据库表进行数据迁移的管控建议。

在一实施方式中,所述执行时间超时的sql查询语句清单可以通过邮件的方式发送给运维人员。所述数据迁移可以是指将目标数据库表中指定的数据迁移至其他历史表,进而降低所述目标数据库表的当前数据量。

在一实施方式中,在进行表索引新增的过程中,需要查找新的数据索引项应该插入的位置,再根据待插入新数据索引项的节点的存储空间确定是否需要分裂该节点,并且在需要分裂该节点的情况下,还需考虑该节点的父节点的存储空间,以确定是否需要分裂该父节点。如此循环反复处理,以确保索引的平衡。

具体地,为目标数据库表新增的数据构建一索引项,查找该索引项在原索引中插入的位置,即查找指定的节点;判断该节点的存储空间是否足够;在判断出该节点的存储空间足够的情况下,将新构建的索引项插入该节点;在判断出该节点的存储空间不足的情况下,分裂该节点。在分裂该节点时,需要重新分配一段连续的存储空间,用于保存与该节点具有相同父节点的同级节点。另外,分裂该节点时,还需判断该节点的父节点的存储空间是否足够,并且在判断出该父节点的存储空间足够的情况下,可以直接修改该父节点指向节点的指针,以完成索引更新,而在判断出该父节点的存储空间不足够的情况下,则需要继续分裂该父节点。

上述数据库管理系统,通过为需进行监控的目标数据库表建立监控任务,并配置监控任务的运行参数,在获取所述监控任务在所述目标数据库表当前数据量下执行完一次的总响应时间及所述监控任务中每一所述sql查询语句的响应时间,并根据获取结果来判断所述目标数据库表是否需要进行调整,可以实现在确定所述目标数据表需要进行调整时精准定位是哪张数据库表表,哪条sql查询语句的问题,进而有针对性地进行处理,保证数据库正常运行,提升用户使用体验。

图3为本发明计算机装置较佳实施例的示意图。

所述计算机装置1包括存储器20、处理器30以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如数据库管理程序。所述处理器30执行所述计算机程序40时实现上述数据库管理方法实施例中的步骤,例如图1所示的步骤s11~s15。或者,所述处理器30执行所述计算机程序40时实现上述数据库管理系统实施例中各模块的功能,例如图2中的模块101~105。

示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图2中的建立模块101、运行模块102、获取模块103、判断模块104、输出模块105。各模块具体功能参见实施例二。

所述计算机装置1可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置1还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。

所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述计算机装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1