用于优化数据库表的处理方法和装置与流程

文档序号:22313646发布日期:2020-09-23 01:34阅读:172来源:国知局
用于优化数据库表的处理方法和装置与流程

本公开涉及数据处理技术领域,特别是涉及一种用于优化数据库表的处理方法和装置。



背景技术:

数据库表是一种常见的数据存储形式。随着使用时间过长,数据库表存在数据处理效率变差的缺陷,进而引发交易响应迟缓、批量执行时间过长的问题。因此,为保证数据处理效率,需要对数据库表进行优化处理。

相关技术中,对数据库表进行优化处理的方式包括运维人员根据既定的判断规则,定期对数据库表进行排查,筛选出需要进行优化处理的目标数据库表。

然而,运维人员根据既定的判断规则,定期对数据库表进行排查,可能存在优化数据库表不及时、实时性差、优化效果不佳的问题。



技术实现要素:

本公开的一个方面提供了一种用于优化数据库表的处理方法。该方法包括获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与所述每个数据库表关联的应用程序的第二特征信息;根据所述第一特征信息及所述第二特征信息,确定需要进行优化处理的目标数据库表;以及对所述目标数据库表进行优化处理。

作为一个可选的实施例,所述根据所述统计特征及所述性能特征,确定需要进行优化处理的目标数据库表,包括根据所述第一特征信息,确定所述每个数据库表的容量特征;根据所述第二特征信息,确定与所述每个数据库表关联的应用程序的响应特征;以及根据所述容量特征及所述响应特征,确定所述目标数据库表。

作为一个可选的实施例,所述根据所述容量特征及所述响应特征,确定所述目标数据库表,包括根据所述容量特征所表征的数据容量,确定所述数据容量满足第一预设条件的数据库表,得到第一数据库表;根据所述容量特征所表征的数据容量变化率,确定所述数据容量变化率满足第二预设条件的数据库表,得到第二数据库表;以及根据所述响应特征所表征的响应时长,确定所述响应时长满足第三预设条件的应用程序所关联的数据库表,得到第三数据库表;以及求所述第一数据库表、所述第二数据库表及所述第三数据库表的并集,得到所述目标数据库表。

作为一个可选的实施例,所述求所述第一数据库表、所述第二数据库表及所述第三数据库表的并集,得到所述目标数据库表,包括在所述并集中除去第四数据库表,得到所述目标数据库表,其中,所述第四数据库表为所述数据容量满足第四预设条件的数据库表。

作为一个可选的实施例,在根据第一特征信息及所述第二特征信息,确定需要进行优化处理的目标数据库表之后,所述方法还包括:在除所述目标数据库表以外的其他数据库表中,确定包含目标数据分区的异常数据库表,其中,所述目标数据分区的数据容量与所述异常数据库表的数据容量的比值超过第一预设阈值;确定所述异常数据库表的文件容量是否超过第二预设阈值;如果是,则确定所述异常数据库表为需要进行优化处理的目标数据库表。

作为一个可选的实施例,所述对所述目标数据库表进行优化处理,包括以下至少之一:对所述目标数据库表重新进行数据分区处理;对所述目标数据库表中的空白数据进行集合处理。

作为一个可选的实施例,所述方法还包括确定所述目标数据库表的被调用频次;根据所述被调用频次,确定所述目标数据库表的优化处理频次。

本公开的另一个方面提供了一种用于优化数据库表的处理装置,包括:获取模块,用于获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与所述每个数据库表关联的应用程序的第二特征信息;第一确定模块,用于根据所述第一特征信息及所述第二特征信息,确定需要进行优化处理的目标数据库表;以及优化处理模块,用于对所述目标数据库表进行优化处理。

本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本公开实施例的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中,

图1示意性示出了根据本公开实施例的用于优化数据库表的处理方法和装置的系统架构;

图2示意性示出了根据本公开实施例的用于优化数据库表的处理方法的流程图;

图3a示意性示出了根据本公开另一实施例的用于优化数据库表的处理方法的流程图;

图3b示意性示出了根据本公开另一实施例的用于优化数据库表的处理方法的流程图;

图4示意性示出了根据本公开实施例的用于优化数据库表的处理装置的框图;以及

图5示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性地,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。

本公开的实施例提供了一种用于优化数据库表的处理方法以及能够应用该方法的处理装置,该方法例如可以包括如下操作。获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息,然后根据第一特征信息及第二特征信息,确定需要进行优化处理的目标数据库表,进而对目标数据库表进行优化处理。

图1示意性示出了根据本公开实施例的用于优化数据库表的处理方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,该系统架构包括至少一个设备中心(图中示出了多个,如设备中心101、102、103)和服务器104(也可以是服务器集群,图中未示出)。在该系统架构100中,每个设备中心如设备中心101、102、103中存有大量的数据,数据以数据库表的形式存储于数据文件中。服务器104能够从设备中心中获取与数据库表关联的特征信息,并根据获取的特征信息,确定需要进行优化处理的目标数据库表。

设备中心包括主设备中心和备用设备中心,主设备中心和备用设备中心中存储的数据库表相同。示例性的,设备中心101为主设备中心,设备中心102、103为备用设备中心。优选地,服务器104从主设备中心101中获取与数据库表关联的特征信息,并根据特征信息确定需要进行优化处理的目标数据库表。在确定出目标数据库表后,服务器104对设备中心101、102、103中的目标数据库表同步进行优化处理。

在实现本公开发明构思的过程中,发明人发现,在现有的数据库表优化方法中,运维人员根据既定的判断规则,定期对数据库表进行排查,筛选出需要进行优化处理的目标数据库表。然而,通过运维人员在预定的时间,定期对数据库表进行排查,可能存在数据库表优化不及时、优化效率低的问题,进而进一步导致数据库表性能不佳、数据处理响应迟缓。

以下将结合附图和具体实施例详细阐述本公开。

图2示意性示出了根据本公开实施例的用于优化数据库表的处理方法的流程图。

如图2所示,该方法可以包括操作s210~s230。

在操作s210,获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息。

在本公开实施例中,具体地,本方法应用的系统架构中可能设置有多个设备中心,设备中心包括主设备中心和备用设备中心。主设备中心和备用设备中心均存储有大量的数据,这些数据以数据库表的形式存储于数据文件中。数据库表中的数据例如包括用户账户信息、交易记录等,根据数据的数据特征不同,大量数据库表被存储在不同的数据文件中。示例性地,根据用户的开户信息,将北京地区用户和上海地区用户各自对应的数据库表存储在不同的数据文件中。

数据库表中的数据量越大,数据库表所占用的文件分区越大。当存在数据库表的数据容量超过预设阈值时,该数据库表对应的文件分区也会过大,影响数据库表中数据的调用效率和管理效果。示例性地,北京地区的开户用户数量较大,存储北京地区用户数据的数据库表的数据容量超过预设阈值,需要对与北京地区用户数据对应的数据库表进行优化处理。数据库表中存储的数据也可能包括空白数据,当空白数据的占用空间较大时,影响数据库表的查阅效率,此时也需要对数据库表进行优化处理。

数据库表优化的关键包括确定需要进行优化处理的目标数据库表,目标数据库表的确定效率影响数据库表的优化效率。本公开实施例能够根据获取的与数据库表关联的特征信息,自动确定出需要进行优化处理的目标数据库表,因而目标数据库表的确定效率高。进一步,目标数据库表的确定效率高,有利于实现数据库表的及时优化,数据库表优化效果较佳。

具体地,获取至少一个数据库表中的每个数据库表的第一特征信息,第一特征信息可以包括数据库表的多种类别的属性信息。示例性地,第一特征信息包括数据库表的表名、对应文件分区、已利用空间等信息。第一特征信息能够表征数据库表的数据容量、数据容量变化率、文件容量等信息,其中,数据容量为数据库表中存储的数据的容量,文件容量为数据库表包括的数据页数与每个数据页大小的乘积。

除获取每个数据库表的第一特征信息外,还获取与每个数据库表关联的应用程序的第二特征信息。不同的数据库表可能会被不同的应用程序调用,一个数据库表可能不与应用程序关联,也可能与至少一个应用程序关联。获取与每个数据库表关联的应用程序的第二特征信息,第二特征信息可以包括应用程序的多种类别的性能信息。示例性地,第二特征信息包括应用程序的程序名、调用次数、响应时长等信息。第二特征信息能够表征应用程序的平均响应时长、响应时长变化率等信息。

接下来,在操作s220,根据第一特征信息及第二特征信息,确定需要进行优化处理的目标数据库表。

在本公开实施例中,具体地,根据获取的至少一个数据库表的第一特征信息,和根据与每个数据库表关联的应用程序的第二特征信息,确定数据容量、数据容量变化率、应用程序响应时长可能存在异常的数据库表,进而确定出需要进行优化处理的目标数据库表。目标数据库表可由服务器自动确定完成,相比于运营人员根据既定规则,定期筛选出需要进行优化处理的目标数据库表,本公开实施例有利于有效提高目标数据库表的筛选效率,进而有利于提高目标数据库表的优化效率。

再接下来,在操作s230,对目标数据库表进行优化处理。

作为一个可选的实施例,对目标数据库表进行优化处理例如可以包括以下至少之一:对目标数据库表重新进行数据分区处理;对目标数据库表中的空白数据进行集合处理。

具体地,对目标数据库表重新进行数据分区处理,例如可以包括对目标数据库表进行拆分和重组处理,或者动态删除目标数据库表中的部分信息,优化目标数据库表的数据分区,进而优化目标数据库表所占用的数据文件分布。对目标数据库表中的空白数据进行集合处理,例如可以包括将目标数据库表中的空白数据,即将目标数据库表中的空隙集中在目标数据库表的最后面位置。

通过本公开实施例,获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息,然后根据第一特征信息及第二特征信息,确定需要进行优化处理的目标数据库表,进而对目标数据库表进行优化处理。本公开实施例根据获取的与每个数据库表关联的特征信息,确定需要进行优化处理的目标数据库表,能够实现目标数据库表的自动化确定,有利于提高目标数据库表的筛选效率,进而有利于提高目标数据库表的优化效率和优化效果;同时,有效降低了目标数据库表筛选的人力成本和时间成本,有利于降低目标数据库表的优化成本,保证数据库表的高效稳定性能,同时还有利于缩短交易响应时长和控制批量业务处理耗时。

图3a示意性示出了根据本公开另一实施例的用于优化数据库表的处理方法的流程图。

如图3a所示,该方法可以包括操作s210、s310~s320、s230。

在操作s210,获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息。

在本公开实施例中,具体地,通过部署自动化定时采集脚本,在每日预定时间采集与至少一个数据库表关联的第一特征信息。具体地,获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息,得到每个数据库表的结果文件。在后续操作中,根据运维经验和算法,根据每个数据库表的结果文件,自动分析结果文件所指示的与每个数据库表关联的性能特征和状态特征,计算出需要实施重组优化的目标数据库表清单。

获取的各数据库表的第一特征信息例如可以包括:tbname(对应表名)、partition(对应分区)、reorglasttime(最近重组时间)、space(已利用空间)、dssize(设定最大空间)、extends(扩展次数)、totalrows(总共记录数)、npages(使用数据页)、nactive(格式化数据页)、reorgfar(前后16页外的无序记录数)、reorgnear(前后16页外的无序记录数)。

第一特征信息中的tbname(对应表名)的含义包括数据库表的表名。partition(对应分区)的含义包括数据库表对应的数据分区或数据文件分区,示例性地,数据库表a对应的数据分区包括北京地区和天津地区,其中,北京地区占数据库表a的1-15part,天津地区占数据库表a的16-20part。reorglasttime(最近重组时间)的含义包括数据库表最近一次重组分区的时间,extends(扩展次数)的含义包括数据库表在数据文件系统中一次扩展的数据页数目。为避免数据分区浪费时间,会提前对数据库表格式化出一个数据页空间,nactive(格式化数据页)的含义包括为数据库表提前格式化出的数据页数目,示例性地,为数据库表提前格式化出的数据页数目为6页,数据库表的npages(使用数据页)为2页。reorgfar和reorgnear的含义包括数据库表上一次重组之后的数据/数据页的排序状态。

不同数据库表的请用情况不同,不同数据库表可能会被不同的主机访问,被不用的应用程序调用处理。一个数据库表可能关联有至少一个应用程序,也可能没有关联应用程序。获取的与每个数据库表关联的应用程序的第二特征信息例如可以包括:package(应用程序名称)、date(调用日期)、occur(调用次数)、tran_time(平均响应时长)、io_time(io响应时长)。

接下来,在操作s310,根据第一特征信息,确定每个数据库表的容量特征,以及根据第二特征信息,确定与每个数据库表关联的应用程序的响应特征。

在本公开实施例中,具体地,第一特征信息能够表征数据库表的容量特征,例如可以表征数据库表的数据容量、数据容量变化率、文件容量、数据分区的数据量占比、重组时间等信息。

数据容量例如可以使用以下特征信息中的至少之一进行表示:extends(扩展次数)、space/dssize(已利用空间/设定最大空间)、reorgunclustins/totalrows(最近重组时间/总共记录数)、npages/nactive(使用数据页/格式化数据页)、reorgfar(前后16页外的无序记录数)、reorgnear(前后16页外的无序记录数)、totalrows(总共记录数)、partition(总共记录数)。

数据容量变化率例如可以使用以下特征信息中的至少之一进行表示:space日增长率s-rate=(st2-st1)/st1、totalrows日增长率t-rate=(tt2-ttl)/ttl、reorgfar日增长率rf-rate=(rf2-rf1)/rf1、reorgnerr日增长率大于10%rn-rate=(rn2-rn1)/rn1。

文件容量例如可以用数据库表的数据页数及每个数据页大小的乘积来表示。数据库表中可能包括多个数据分区,其中一个数据分区的数据量占比为该数据分区中的数据容量与整个数据库表的数据容量的比值。重组时间例如可以用reorglasttime来表示。

第二特征信息能够表征应用程序的响应特征,响应特征例如可以包括平均响应时长、响应时长变化率、io响应时长占比等信息。

平均响应时长例如可以使用tran_time表示。响应时长变化率例如可以使用io-rate=(iot2-iot1)/iot1表示,其中,iot1为最近一次重组优化前的io响应时长、iot2为当前的io响应时长。io响应时长占比例如可以使用io_time/tran_time表示。

接下来在操作s320,根据容量特征及响应特征,确定目标数据库表。

在本公开实施例中,具体地,根据容量特征及响应特征,确定目标数据库表,包括根据容量特征所表征的数据容量,确定数据容量满足第一预设条件的数据库表,得到第一数据库表;根据容量特征所表征的数据容量变化率,确定数据容量变化率满足第二预设条件的数据库表,得到第二数据库表;根据响应特征所表征的响应时长,确定响应时长满足第三预设条件的应用程序所关联的数据库表,得到第三数据库表;以及求第一数据库表、第二数据库表及第三数据库表的并集,得到目标数据库表。

根据容量特征所表征的数据容量,确定数据容量满足第一预设条件的数据库表,得到第一数据库表。第一预设条件例如可以包括以下条件。

reorglasttime早于2年(最近重组时间早于2年)&space/dssize>0.2(已利用空间/设定最大空间>0.2);

space/dssize>40%(已利用空间/设定最大空间>40%);

extends>100(扩展次数>100);

reorgunclustins/totalrows>2%(最近重组时间/总共记录数>2%);

npages/nactive<50%(使用数据页/格式化数据页<50%)&space/dssize>25%(已利用空间/设定最大空间>25%);

reorgfar>100000(前后16页外的无序记录数>100000);

reorgnear>100000(前后16页外的无序记录数>100000)。

满足上述任一第一预设条件的数据库表,即为第一数据库表。根据上述条件,能够筛选出数据容量过大的数据库表。数据库表的数据容量过大时,所占用的数据文件过大,磁盘消耗庞大。为提高数据库表性能,保证数据库表的调用效率,需要对数据容量超过预设阈值的数据库表进行优化处理。

根据容量特征所表征的数据容量变化率,确定数据容量变化率满足第二预设条件的数据库表,得到第二数据库表。第二预设条件例如可以包括以下条件。

space(已利用空间)日增长率s-rate=(st2-st1)/st1大于0.5%&totalrows日增长率t-rate=(tt2-tt1)/tt1小于0.5%;

reorgfar(前后16页外的无序记录数)日增长率大于10%rf-rate=(rf2-rf1)/rfl:

reorgnerr(前后16页外的无序记录数)日增长率大于10%rn-rate=(rn2-rn1)/rn1。

满足上述任一第二预设条件的数据库表,即为第二数据库表。根据上述条件,能够筛选出数据容量变化率过大的数据库表。数据库表的数据容量变化率过大时,说明数据库表的数据容量增长较快,这可能会导致数据库表空间不足,甚至可能诱发爆表可能。为提高数据库表性能,保障数据库表的调用效率,需要对数据容量变化率超过预设阈值的数据库表进行优化处理。

根据响应特征所表征的响应时长,确定响应时长满足第三预设条件的应用程序所关联的数据库表,得到第三数据库表。第三预设条件例如可以包括以下条件。

tran_time>5s(平均响应时长>5s)&io_time/tran_time>90%(io响应时长/平均响应时长>90%);

io_time(io响应时长)的增长率iorate=(iot2-iot1)/iot1大于1%。

满足上述任一第三预设条件的数据库表,即为第三数据库表。当与数据库表关联的应用程序的响应时长超出预设阈值时,反映应用程序在调用数据库表进行数据处理时,数据库表使用效率变差,这可能会导致交易响应时间迟缓,批量执行时间较长,因此需要对确定出的第三数据库表进行优化处理。

求第一数据库表、第二数据库表及第三数据库表的并集,并集中的数据库表为需要进行优化处理的目标数据库表。然而,由于在对数据库表进行优化处理时,涉及数据库表中数据的迁移,数据迁移过程中不能进行交易操作和数据访问。示例性地,数据迁移时间需要5个30秒的时间,这期间可能产生两笔交易。但是,当数据库表中的数据容量过大时,在数据迁移过程中,大容量交易不可操作,影响正常的交易操作和数据访问。同时,当数据库中的数据容量过大时,可能没有合适的窗口进行数据迁移。因此,为保证数据库表优化效果,和减少数据库表优化对正常交易操作和数据访问的影响,需要对并集中的数据库表进行清理,除去数据容量满足一定条件的数据库表。

可选地,本公开实施例还包括在并集中除去第四数据库表,得到目标数据库表,其中,第四数据库表为数据容量满足第四预设条件的数据库表。

根据容量特征所表征的数据容量,确定数据容量满足第四预设条件的数据库表,得到第四数据库表。第四预设条件例如可以包括以下条件。

space/dssize>70%(已利用空间/设定最大空间>70%)&npages/nactive>85%(使用数据页/格式化数据页>85%);

partition(对应分区)>256或者totalrows(总共记录数)>1亿。

利用t1、t2、t3、t4分别表示第一数据库表、第二数据库表、第三数据库表、第四数据库表,那么确定出的需要进行优化处理的目标数据库表集合t5=t1+t2+t3-t4。

再接下来在操作s230,对目标数据库表进行优化处理。

在本公开实施例中,具体地,t1、t2、t3、t4中的数据库表具有对应的被调用频次,被调用频次为数据库表在单小时内的被调用次数。在对目标数据库表进行优化处理时,本公开实施例还例如可以包括确定目标数据库表的被调用频次,然后根据被调用频次,确定目标数据库表的优化处理频次。

数据库表的被调用频次越高,在单位时间内数据库表被调用进行交易的次数越多。为减少数据库表优化对用户的交易行为的影响,根据目标数据库表的被调用频次,确定目标数据库表的优化处理频次,具体地,被调用频次越高,对应的优化处理频次越低。示例性地,对于被调用频次为5000的数据库表来说,该数据库表在一个小时内平均被调用5000次,数据库表的数据迁移时间大约有150秒时间,此间完成的交易数量为2笔左右,对该数据库表进行优化处理,对用户的交易行为影响不大,因此可将该数据库表的优化处理频次设置为每周两次。

示例性地,根据被调用频次,确定目标数据库表的优化处理频次,例如可以包括:

t5(a)=t1+t2+t3-t4,occur<5000;

t5(b)=t1+t2+t3-t4,5000<=occur<36000;

t5(c)=t1+t2+t3-t4,occur>36000;

其中,目标数据库表集合t5=t1+t2+t3-t4,t5包括t5(a)、t5(b)、t5(c),t5(a)、t5(b)、t5(c)中数据库表的被调用频次occur不同。根据目标数据库表的被调用频次,确定优化处理频次,示例性地,对于occur<5000的t5(a),确定优化处理频次为每周两次;对于5000<=occur<36000的t5(b),确定优化处理频次为每月一次;对于occur>36000,确定优化处理频次为每季度一次。

图3b示意性示出了根据本公开另一实施例的用于优化数据库表的处理方法的流程图。如图3b所示,本公开实施例还例如可以包括:

在操作s410,根据与数据库表关联的容量特征及响应特征,确定该数据库表是否为目标数据库表。其中,在判断结果为否的情况下执行操作s420,在判断结果为是的情况下执行操作s450。

在操作s420,确定数据库表是否为包含目标数据分区的异常数据库表。其中,在判断结果为否的情况下结束,在判断结果为是的情况下执行操作s430。

在操作s430,确定数据库表的文件容量是否超过第二预设阈值。其中,在判断结果为否的情况下执行操作s440,在判断结果为是的情况下,确定数据库表为目标数据库表并执行操作s450。

在操作s440,对异常数据库表进行监控处理。

在操作s450,对目标数据库表进行优化处理。

在操作s440和操作s450后结束。

即,在除目标数据库表以外的其他数据库表中,确定包含目标数据分区的异常数据库表,其中,目标数据分区的数据容量与异常数据库表的数据容量的比值超过第一预设阈值;确定异常数据库表的文件容量是否超过第二预设阈值;以及如果是,则确定异常数据库表为需要进行优化处理的目标数据库表。

在根据容量特征及响应特征,确定出需要进行优化处理的目标数据库表后,对于除目标数据库表以外的其他数据库表,继续根据其他规则,确定是否还存在需要进行优化处理的目标数据库表。具体地,在除目标数据库表以外的其他数据库表中,确定包含目标数据分区的异常数据库表。数据库表中可能包括多个数据分区,目标数据分区为数据容量占比超过预设阈值的数据分区,进一步地,目标数据分区为数据容量与所在的数据库表的数据容量的比值超过第一预设阈值的数据分区,将包含目标数据分区的数据库表确定为异常数据库表。可选地,第一预设阈值为80%。

在确定出异常数据库表后,输出异常数据库表的数据分布现状及数据增长历史记录,以供研发人员根据数据分布现状及数据增长历史记录,预估异常数据库表的数据增长趋势,并根据数据增长趋势,确定异常数据库表的风险等级。

示例性地,数据库表b包含5个数据分区,其中数据分区b(1)中的数据为北京地区用户的交易记录数据,数据分区b(1)的数据容量与数据库表b的数据容量比值达到90%,超出第一预设阈值,数据库表b中的数据过于集中于数据分区b(1),其余数据分区的数据容量占比过小,因此需要对数据库表b进行优化处理,优化处理的方式例如可以包括将数据库表b重新划分为只包含数据分区b(1),甚至可以包括继续将数据分区b(1)划分为多个子分区,例如按地区划分,将数据分区b(1)划分为海淀区、朝阳区、西城区、东城区、北京其他区。

在确定出包含目标数据分区的异常数据库表后,继续确定异常数据库中的文件容量是否超过第二预设阈值,如果是,则确定异常数据库表为需要进行优化处理的目标数据库表。文件容量为数据库表包含的数据页数与每个数据页大小的乘积,示例性地,数据库表c包含10个数据页,每个数据页的容量大小为4k。可选地,第二预设阈值为25%。

在确定出需要进行优化处理的目标数据库表后,自动执行优化作业的触发作业,以实现自动加载优化作业中的清单,实现在主设备中心和备用设备中心并行进行目标数据库表的优化处理。主设备中心的负载高、系统资源丰富,同时主设备中心承担大量的交易操作;备用设备中心的负载低、系统资源紧缺,并且不承担交易操作。主设备中心和备用设备中心的目标数据库表优化作业可同时进行,也可不同时进行。

通过本公开实施例,自动收集每个数据库表的第一特征信息,以及与每个数据库表关联的应用程序的第二特征信息,根据第一特征信息和第二特征信息,自动检测出需要进行优化处理的目标数据库表,然后实施自动化调整。有利于实现数据库表的分布优化,提升与数据库表关联的应用程序的性能,保障主设备中心的数据库表的高效稳定性能。同时,目标数据库表优化处理的自动化程度高,实时性强,优化成本得以有效控制,有利于有效解决交易响应迟缓、批量执行时间长的问题。

图4示意性示出了根据本公开实施例的用于优化数据库表的处理装置的框图。

如图4所示,该处理装置400包括获取模块401、第一确定模块402及优化处理模块403。该处理装置可以执行上面参考方法实施例部分描述的方法,在此不再赘述。

具体地,获取模块401,用于获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息。第一确定模块402,用于根据第一特征信息及第二特征信息,确定需要进行优化处理的目标数据库表;以及优化处理模块403,用于对目标数据库表进行优化处理。

通过本公开实施例,获取至少一个数据库表中的每个数据库表的第一特征信息,以及获取与每个数据库表关联的应用程序的第二特征信息,然后根据第一特征信息及第二特征信息,确定需要进行优化处理的目标数据库表,进而对目标数据库表进行优化处理。本公开实施例根据获取的与每个数据库表关联的特征信息,确定需要进行优化处理的目标数据库表,能够实现目标数据库表的自动化确定,有利于提高目标数据库表的筛选效率,进而有利于提高目标数据库表的优化效率和优化效果;同时,有效降低了目标数据库表筛选的人力成本和时间成本,进而有效降低了目标数据库表的优化成本,有利于保证数据库表性能,缩短数据处理响应时长,控制批量业务处理耗时。

作为一种可选的实施例,该处理装置除了包括如图5所示的获取模块401、第一确定模块402及优化处理模块403外,其中,第一确定模块,还包括第一确定子模块,用于根据第一特征信息,确定每个数据库表的容量特征;第二确定子模块,用于根据第二特征信息,确定与每个数据库表关联的应用程序的响应特征;以及第三确定子模块,用于根据容量特征及响应特征,确定目标数据库表。

作为一种可选的实施例,第三确定子模块,包括:第一处理单元,用于根据容量特征所表征的数据容量,确定数据容量满足第一预设条件的数据库表,得到第一数据库表;第二处理单元,用于根据容量特征所表征的数据容量变化率,确定数据容量变化率满足第二预设条件的数据库表,得到第二数据库表;第三处理单元,用于根据响应特征所表征的响应时长,确定响应时长满足第三预设条件的应用程序所关联的数据库表,得到第三数据库表;以及第四处理单元,用于求第一数据库表、第二数据库表及第三数据库表的并集,得到目标数据库表。

作为一种可选的实施例,第四处理单元,包括:第一处理子单元,用于在并集中除去第四数据库表,得到目标数据库表,其中,第四数据库表为数据容量满足第四预设条件的数据库表。

作为一种可选的实施例,该处理装置还包括第二确定模块,第二确定模块包括第四确定子模块,用于在除目标数据库表以外的其他数据库表中,确定包含目标数据分区的异常数据库表,其中,目标数据分区的数据容量与异常数据库表的数据容量的比值超过第一预设阈值;第五确定子模块,用于确定异常数据库表的文件容量是否超过第二预设阈值;第六确定子模块,用于在异常数据库表的文件容量超过第二预设阈值的情况下,确定异常数据库表为需要进行优化处理的目标数据库表。

作为一种可选的实施例,优化处理模块包括以下至少之一:第一处理子模块,用于对目标数据库表重新进行数据分区处理;第二处理子模块,用于对目标数据库表中的空白数据进行集合处理。

通过本公开实施例,自动收集每个数据库表的第一特征信息,以及与每个数据库表关联的应用程序的第二特征信息,根据第一特征信息和第二特征信息,自动检测出需要进行优化处理的目标数据库表,然后实施自动化调整。有利于实现数据库表的分布优化,提升与数据库表关联的应用程序的性能,保障主设备中心的数据库表的高效稳定性能。同时,目标数据库表优化处理的自动化程度高,实时性强,优化成本得以有效控制,有利于有效解决交易响应迟缓、批量执行时间长的问题。

根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,取模块401、第一确定模块402及优化处理模块403中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块401、确定模块402、优化处理模块403及通知模块404中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块401、确定模块402、优化处理模块403及通知模块404中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的电子设备的框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,电子设备500包括处理器510、计算机可读存储介质520。该电子设备500可以执行根据本公开实施例的方法。

具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理模块或者是多个处理模块。

计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;等等。

计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。

计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521a、模块521b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。

根据本公开的实施例,获取模块401、第一确定模块402及优化处理模块403中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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