数据表性能检测方法、系统、计算设备及计算机可读存储介质与流程
未命名
09-22
阅读:72
评论:0

技术领域:
:,特别涉及一种数据表性能检测方法。
背景技术:
::2.随着信息化的发展,数据库的数据不断增长,对数据库提出了更高性能的要求。然而,由于在数据库开发阶段,数据库的功能实现通常是人们关注的重点,对操作性能关注较少,随着数据库的使用,要从大数据量的数据库中快速操作相关数据,变得越来越困难。基于此,目前通常会在数据库投入使用之后,对数据表进行优化,以提高数据库的操作性能。3.但是,面对数据库中大量的数据表,对哪些数据表进行优化能提高数据库的操作性能,是个难题。因此,目前亟需一种数据表性能检测方法,以帮助人们准确检测出影响数据库操作性能的数据表。技术实现要素:4.有鉴于此,本说明书实施例提供了一种数据表性能检测方法。本说明书一个或者多个实施例同时涉及一种数据表性能检测系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。5.根据本说明书实施例的第一方面,提供了一种数据表性能检测方法,包括:获取待检测数据表的数据操作信息;利用所述待检测数据表的数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时;基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。6.根据本说明书实施例的第二方面,提供了一种数据表性能检测系统,包括:检测节点、数据库服务节点、计算节点和多个存储节点。所述检测节点,被配置为应用如本说明书任意实施例所述数据表性能检测方法检测数据库中数据表的操作性能指标;所述数据库服务节点,被配置为运行所述数据库,向所述计算节点下发所述数据库的数据操作任务;所述计算节点,被配置为对所述数据库的数据表执行数据操作任务;所述存储节点,被配置为存储所述数据表的数据分片,所述数据分片通过使用所述数据表的指定字段对所述数据表的数据进行切分得到,所述数据表的多个数据分片分散存储于多个存储节点。7.根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据表性能检测方法的步骤。8.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据表性能检测方法的步骤。9.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据表性能检测方法的步骤。10.本说明书一个实施例实现了数据表性能检测方法,由于该方法获取待检测数据表的数据操作信息,利用所述待检测数据表的数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时,从而基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。可见,该方法基于数据读取耗时和数据操作过程整体耗时,来确定数据读取对数据操作造成的影响,从而得到待检测数据表的操作性能指标,根据该操作性能指标能够帮助人们准确找出影响数据库操作性能的数据表,对数据表进行例如优化、发出性能报警提示信息等任一种或多种处理,从而有助于提高数据库整体的操作性能。附图说明11.图1是本说明书一个实施例提供的一种数据表性能检测方法的应用场景示意图;12.图2是本说明书一个实施例提供的一种数据表性能检测方法的流程图;13.图3是本说明书一个实施例提供的一种数据表性能检测方法在查询应用场景中的实施架构示意图;14.图4是本说明书一个实施例提供的数据倾斜度计算处理过程流程图;15.图5是本说明书一个实施例提供的操作性能指标计算处理过程流程图;16.图6是本说明书一个实施例提供的三轮筛选处理过程示意图;17.图7是本说明书一个实施例提供的一种数据表性能检测装置的结构示意图;18.图8是本说明书一个实施例提供的一种数据表性能检测系统的结构示意图;19.图9是本说明书一个实施例提供的一种计算设备的结构框图。具体实施方式20.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。21.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。22.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。23.此外,需要说明的是,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。24.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。25.分布式数据库:多个节点并行进行数据查询、数据写入等操作的系统。26.数据倾斜:在一些数据库中,会根据用户建表时指定的字段进行哈希计算,以将数据表的数据打散存储。因此,一个数据表的数据可以分散地存储在多个存储节点上。如果用户指定的字段本身数据分布不均匀,那么在进行哈希计算,打散存储时,会导致某些存储节点存储了较多数据,而其他节点存储的数据较少甚至不存储数据,这种数据不均匀分布存储的现象,称为数据倾斜。27.数据建模:是指数据库的建表方式。例如,建表方式可以包括:表中字段的类型、字段个数、分区字段、排序字段等设置,同时还可以包括分布式数据库自身特点相关的语法,例如用于哈希计算的字段的指定等。28.数据分片(shard):一个数据表的数据在数据库存储时,可以通过哈希计算等规则切分为多个数据分片,分散写入到多个存储节点中。每个存储节点的数据分片数可以大于等于1。一个存储节点的数据分片数如果等于1,则存储节点单线程读取数据,如果大于1,则存储节点可以多线程并行地读取数据。29.在一些数据库中,数据写入时,会根据用户建表时的指定字段的值,对数据表的数据进行切分,把数据表的数据均匀的分散到多个存储节点上,这样各个存储节点的磁盘空间占用会较为均匀。同时,在数据库进行数据操作时,可以从多个存储节点并行地读取数据,这样可以提高数据操作性能。但是,如果用户建表时,指定字段的数据不均匀,有可能导致某些存储节点磁盘容量超限而某些存储节点磁盘则没有数据,从而在数据操作时,各个存储节点并行读取的数据量差异较大,某些存储节点无数据可读,而其他存储节点则在数据读取时耗时较多,从而影响数据库的整性操作能。因此,用户需要对数据库进行优化,但面对众多的数据表,无从下手优化。30.有鉴于此,在本说明书中,提供了一种数据表性能检测方法,本说明书同时涉及一种数据表性能检测装置,一种数据表性能检测系统,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。31.参见图1,图1示出了根据本说明书一个实施例提供的一种数据表性能检测方法的应用场景示意图。如图1所示,该应用场景中,可以包括:检测节点、数据库服务节点、日志库、计算节点和多个存储节点。其中,所述检测节点,被配置为应用本说明书实施例提供的所述数据表性能检测方法检测数据库中数据表的操作性能指标。具体地,所述检测节点利用数据库的操作日志,获取待检测数据表的数据操作信息,利用所述待检测数据表的数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时,基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。所述数据库服务节点,被配置为运行所述数据库,向所述计算节点下发所述数据库的数据操作任务。所述计算节点,被配置为对所述数据库的数据表执行数据操作任务。所述存储节点,被配置为存储所述数据表的数据分片,所述数据分片通过使用所述数据表的指定字段对所述数据表的数据进行切分得到,所述数据表的多个数据分片分散存储于多个存储节点。所述日志库,被配置为存储数据库操作日志。32.需要说明的是,所述数据库的操作日志可以存储于独立的日志库,也可以存储于上述存储节点、数据库服务节点或其他存储设备,本说明书对此并不进行限制。33.该方法基于数据读取耗时和数据操作整体耗时,来确定数据读取对数据操作造成的影响,从而得到待检测数据表的操作性能指标,根据该操作性能指标能够帮助人们准确找出影响数据库操作性能的数据表,对数据表进行优化或性能报警提示等处理,提高数据库整体的操作性能。34.上述节点(如检测节点、数据库服务节点、计算节点、存储节点)可以是提供各种服务的物理服务器或云服务器。例如,可以是为多个客户端提供通信服务,提供数据处理服务,提供计算服务,提供存储服务,提供数据库服务等服务的服务器。需要说明的是,节点可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(cdn,contentdeliverynetwork)、以及大数据和人工智能平台等基础云计算服务的云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。35.可以理解的是,上述应用场景仅用于对本说明书实施例提供的方法进行示例性说明,并不构成对本说明书实施例提供的方法的限制。本说明书实施例提供的方法可以对各种数据库的数据表进行性能检测。例如,本说明书实施例提供的方法可以用于分布式数据库的数据表进行性能检测,具体如云原生数据仓库的数据表的性能检测,满足数据仓库优化的需求。36.参见图2,图2示出了根据本说明书一个实施例提供的一种数据表性能检测方法的流程图,具体包括以下步骤。37.步骤202:获取待检测数据表的数据操作信息。38.数据表,是数据库组织数据的基本单位。所述待检测数据表可以是任意类型数据库中的任意数据表。例如,一个或多个实施例中,可以获取数据库操作日志,将数据库操作日志中记录的数据操作信息相关的数据表作为待检测数据表。再例如,一个或多个实施例中,可以根据场景需要设置预设筛选策略,从数据库中筛选出部分数据表作为待检测数据表。又例如,一个或多个实施例中,可以接收检测请求,检测请求中携带了要检测的数据表的标识等信息,根据检测请求,确定待检测数据表。39.所述数据操作信息,是对所述待检测数据表进行例如查询等操作的相关信息。例如,在待检测数据表的数据操作任务为单线程任务时,所述数据操作信息可以包括待检测数据表的表标识(如表名)、数据操作任务标识、数据操作任务的数据读取量、数据操作任务的数据读取耗时、和数据操作任务整个数据操作过程的耗时等信息。再例如,在待检测数据表的数据操作任务包括多线程任务时,所述数据操作信息可以包括待检测数据表的表标识、数据操作任务标识、数据操作任务的多个子任务、多个子任务各自的数据读取量、多个子任务的数据读取耗时、和数据操作任务整个数据操作过程的耗时等信息。40.步骤204:利用所述待检测数据表的数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时。41.所述数据操作过程,是指从数据操作任务发出到数据操作任务完成之间的过程,其中包括了数据读取,对读取出的数据执行操作两个阶段。42.需要说明的是,获取所述待检测数据表在数据操作过程中的数据读取耗时的具体方式,与数据读取方式有关,需要根据数据读取方式来确定如何获取数据读取耗时。43.例如,一个或多个实施例中,一个数据表的数据采用一个线程进行读取,在这种情况下,所述数据读取耗时,是指该线程读取出数据的耗时。44.再例如,一个或多个实施例中,一个数据表的数据被切片为多个数据分片,分散存储于多个存储节点,读取时采用多个线程并行读取,在这种情况下,所述数据读取耗时,是指多个并行的线程中数据读取耗时最大的线程读取出数据的耗时。45.步骤206:基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。46.例如,一个或多个实施例中,一个数据表的数据采用一个线程进行读取,在这种情况下,所述数据读取耗时可以是该线程读取出数据的耗时,如2ns,结合该线程的整体数据操作过程的耗时,如3ns,则所述操作性能指标可以是2/3。47.再例如,一个或多个实施例中,一个数据表的数据被切片为多个数据分片,分散存储于多个存储节点,读取时采用多个线程并行读取,在这种情况下,所述数据读取耗时可以是多个并行的线程中数据读取耗时最大的线程读取出数据的耗时,如2ns,结合该线程的整体数据操作过程的耗时,如4ns,则所述操作性能指标可以是2/4。48.由于通过数据读取耗时和数据操作整体耗时,能够确定数据读取对数据操作造成的影响,从而得到待检测数据表的操作性能指标,因此,根据该操作性能指标能够帮助人们准确找出影响数据库操作性能的数据表,对数据表进行优化或发出性能报警提示等任一种或多种处理,进而提高数据库整体的操作性能。49.本说明书一个或多个实施例中,针对数据库中,数据表的操作性能一定程度上受数据表的数据倾斜影响,还提供了计算数据表的倾斜度的实施例。具体地,所述方法还包括:50.利用所述待检测数据表的数据操作信息,确定所述待检测数据表的数据操作任务;51.获取所述数据操作任务中多个子任务对应的数据读取量,所述待检测数据表被切分为多个数据分片,所述多个数据分片分散存储于多个存储节点,一个所述子任务用于从一个所述存储节点读取出一个所述数据分片的数据并进行数据操作;52.基于所述多个子任务对应的数据读取量,计算所述待检测数据表的数据倾斜度。53.其中,所述数据倾斜度,是用于表示一个数据表的数据分布存储的不均匀程度的指标。由于一个所述子任务用于从一个所述存储节点读取出一个所述数据分片的数据,因此,基于一个数据操作任务的多个子任务对应的数据读取量,能够计算出用于表示数据表的数据分布存储的不均匀程度的指标。所述数据倾斜度的表示方式不限,只要能够表示不均匀的程度即可。例如,所述数据倾斜度可以用各个子任务对应的数据读取量的比值来表示,如一个数据表的四个子任务对应的数据读取量的比例为2:2:4:8,则所述数据倾斜度可以表示为2:2:4:8。再例如,所述数据倾斜度可以用各个子任务中,对应的数据读取量最大的子任务的数据读取量,与多个子任务对应的数据读取量的平均值的比值来表示,如一个数据表的四个子任务对应的数据读取量的比例为2:2:4:8,则所述数据倾斜度可以表示为8:4。54.在该实施例中,考虑到数据表的倾斜现象,进一步检测出了数据表的数据倾斜度这个辅助诊断指标,从而结合数据读取耗时和数据操作过程耗时计算出的操作性能指标,可以更加准确地筛选出需要优化的数据表或者给用户发出性能报警提示信息等,避免一些存在较严重倾斜的数据表实际上并没有被操作,也被筛选出来,影响对待优化数据表或性能报警数据表的选择,提高了数据表建模的调优效率。根据该实施例,还可以基于待检测数据表的操作性能指标和辅助诊断指标多个维度的信息,区分待优化数据表的优先级。例如,操作性能指标对应的优先级权重可以大于辅助诊断指标对应的优先级权重。55.对应上述数据表的数据操作任务包含多个子任务的方案,本说明书实施例还提供了一种计算数据倾斜度的实施方式。具体地,所述基于所述多个子任务对应的数据读取量,计算所述待检测数据表的数据倾斜度,包括:56.从所述多个子任务中,确定对应的数据读取量最大的第一目标子任务;57.计算所述第一目标子任务对应的数据读取量与所述多个子任务对应的数据读取量的平均值的比值,得到所述待检测数据表的数据倾斜度。58.例如,上述示例中,一个数据表的四个子任务对应的数据读取量的比例为2:2:4:8,则根据该实施例,所述数据倾斜度可以表示为,8:4。59.在该实施例中,通过数据读取量最大的第一目标子任务与多个子任务对应的数据读取量的平均值的比值,来表示数据倾斜度,实现了数据倾斜度的归一化,即使不同数据表的数据操作任务包含的子任务数量不同,也能够得到可直接用于比较数值的数据倾斜度,便于直接使用数据倾斜度进行待优化数据表的筛选。60.与上述实施例相应地,由于一个数据表的一个数据操作任务包含多个子任务,多个子任务为并行处理的子任务,其中数据读取耗时最大的子任务,涵盖了其他子任务的数据读取耗时,因此,数据读取耗时最大的子任务可以用于代表整个数据表的数据读取耗时,将其与该数据操作任务的数据读取阶段和对读取出的数据执行操作阶段,这两个阶段的耗时之和(即待检测数据表的数据操作过程的耗时)进行比值计算,能够得到待检测数据表的操作性能指标。具体地,所述获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时,包括:61.从所述多个子任务中,确定对应的数据读取耗时最长的第二目标子任务;62.获取所述第二目标子任务的数据读取耗时,和所述待检测数据表在所述数据操作过程的耗时;63.所述基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标,包括:64.计算所述第二目标子任务的数据读取耗时,和所述待检测数据表在所述数据操作过程的耗时的比值,得到所述待检测数据表的操作性能指标。65.例如:待检测数据表的第二目标子任务的数据读取耗时为2ns,待检测数据表在数据操作过程的耗时为第二目标子任务的数据读取耗时2ns与对数据执行操作的耗时3ns之和,即5ns。因此,待检测数据表的操作性能指标为2/5。66.在该实施例中,考虑到数据库中,操作整体耗时往往是由子任务的最长耗时决定的,因此,获取了待检测数据表的各个子任务,也即各个数据分片的数据读取耗时,从中确定了最大数据读取耗时,将其与数据操作过程的整体耗时进行对比,得到了操作性能指标,能够准确表示待检测数据表的操作性能。67.需要说明的是,本说明书实施例提供的方法中,所述待检测数据表的操作性能指标,可以用于筛选待优化数据表,或者可以用于选择数据表来给用户发出性能报警提示信息等任一种或多种应用场景。以用于筛选待优化数据表为例,本说明书实施例提供的方法还可以包括:68.根据各个所述待检测数据表的操作性能指标,从多个所述待检测数据表中筛选出待优化数据表。69.在该实施例中,根据数据读取耗时和数据操作过程的耗时计算出的操作性能指标,能够准确找出影响数据库操作性能的数据表,降低用户调优复杂度,减少调优的盲目性。70.为了进一步缩小待优化数据表的范围,减少调优的盲目性,本说明书一个或多个实施例中,还可以结合辅助诊断指标,进行待优化数据表的筛选。具体地,所述方法还包括:获取所述待检测数据表的辅助诊断指标。相应地,所述根据所述操作性能指标,从多个所述待检测数据表中筛选出待优化数据表,包括:71.根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表;72.所述辅助诊断指标,包括:数据倾斜度、操作次数、操作时间、数据操作任务中子任务的数据读取量最大值、操作中数据读取总量中的至少一项。73.例如:可以根据所述操作性能指标和所述数据倾斜度,从多个所述待检测数据表中筛选出待优化数据表。74.再例如:可以根据所述操作性能指标和所述待检测数据表的操作次数,从多个所述待检测数据表中筛选出待优化数据表。75.又例如:可以根据所述操作性能指标、所述待检测数据表的操作次数和所述待检测数据表的数据倾斜度,从多个所述待检测数据表中筛选出待优化数据表。76.可以理解的是,对于操作次数较少、操作时间不属于关注的时间范围、数据操作任务中子任务的数据读取量最大值较小、数据倾斜度较低和/或操作中数据读取总量较低的数据表来说,其对数据库性能的影响相应也小,因此,结合这些辅助诊断指标进行待优化数据表的筛选,能够进一步缩小待优化数据表的范围。77.在该实施例中,结合各种维度的辅助诊断指标,可以有效筛选出对操作性能影响较大的数据表,提升操作性能,例如,结合体现数据表本身的分布特点的数据倾斜度,查询次数等指标,把数据倾斜的影响程度和操作过程中的各种指标相结合,可以更加精确的筛选出需要进行优化的数据表。78.以根据所述操作性能指标、所述操作次数和所述数据倾斜度,从多个所述待检测数据表中筛选出待优化数据表为例,可以通过层层筛选的方式缩小待优化数据表的范围。具体地,例如,所述根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表,包括:79.从多个所述待检测数据表中,筛选出操作次数满足预设操作次数条件的数据表,得到待优化数据表的候选集合;80.从所述候选集合中,筛选出数据倾斜度满足预设倾斜度条件的数据表,得到更新的待优化数据表的候选集合;81.从更新后的候选集合中,确定操作性能指标满足预设操作性能指标条件的数据表,为所述待优化数据表。82.其中,所述预设操作次数条件、预设倾斜度条件、预设操作性能指标条件,可以根据实施场景需要进行设置,本说明书对此并不进行限制。例如,可以按照操作操作次数、数据倾斜度、操作性能指标的数值,从大到小的顺序进行排序,筛选出排序在前预设数量的数据表,来确定待优化数据表;再例如,可以预设阈值,筛选出大于或等于预设阈值的数据表,来确定待优化数据表。83.例如:可以首先对各个待检测数据表按照操作次数从多到少的顺序进行排序,筛选出排序在前500位的数据表,再从该500个数据表中,筛选出数据倾斜度大于3的数据表,最后再从数据倾斜度大于3的数据表中,筛选出数据读取耗时和数据操作过程的耗时的比值(也即操作性能指标)大于0.5的数据表,作为最终的待优化数据表。84.在该实施例中,基于操作性能指标、操作次数、数据倾斜度三个维度的信息,通过层层筛选的方式逐步缩小待优化数据表的范围,符合三个维度的信息分别对数据表的操作性能影响的程度,实现了从粗筛到细晒,精准地从各个所述待检测数据表中筛选出待优化数据表的方案。85.对于筛选出的待优化数据表,可以通过重新选择指定字段的方式来使数据的分布发生变化,也可以通过调整存储节点的方式来使数据的分布发生变化,还可以通过其他方式进行优化,本说明书对此并不进行限制。例如,本说明书一个或多个实施例中,所述方法还可以包括:86.针对待优化数据表,重新选择指定字段,所述指定字段用于对所述数据表的数据进行切分得到多个数据分片,所述多个数据分片分散存储于多个存储节点。87.其中,所述指定字段,可以由用户自主选择或系统自动选择的方式进行设置。例如,应用了所述数据表性能检测方法的系统可以提供用户操作界面,用户可以通过该用户操作界面输入重新选择的指定字段。再例如,应用了所述数据表性能检测方法的系统可以通过预测数据倾斜度等方式,找出数据分布比较均匀的字段作为指定字段。88.在该实施例中,可以基于重新选择的指定字段进行哈希计算,根据哈希值确定存储节点,将数据表的数据进行切分,得到多个数据分片,并分散存储于多个存储节点,从而使得数据的分布更加均匀,有助于提高数据操作性能。89.本说明书一个或多个实施例中,为了便于进行筛选,通过数据库操作日志获取数据操作信息,并将操作性能指标和各种辅助诊断指标以结构化方式存储在诊断数据表。具体地,所述获取待检测数据表的数据操作信息,包括:90.解析数据库操作日志,获得数据库中多个待检测数据表的数据操作信息;91.所述方法还包括:92.将所述待检测数据表的表标识、数据操作任务标识、操作性能指标和辅助诊断指标分别保存在诊断数据表的各个字段中。所述辅助诊断指标,包括:数据倾斜度、操作次数、操作时间、数据操作任务中子任务的数据读取量最大值、操作中数据读取总量中的至少一项。例如,所述诊断数据表中可以包含表标识字段、数据操作任务标识字段、操作性能指标字段、数据倾斜度字段等等。相应地,所述根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表,包括:93.利用所述诊断数据表的各个字段中存储的待检测数据表的表标识、数据操作任务标识、操作性能指标和辅助诊断指标,以及所述操作性能指标和辅助诊断指标对应的预设筛选条件,从多个所述待检测数据表中筛选出待优化数据表。94.例如,可以使用一般的数据库查询语句如“select”进行待优化数据表的筛选。在“select”语句中,使用所述操作性能指标和辅助诊断指标对应的预设筛选条件筛选出符合该预设筛选条件的待检测数据表为优化数据表。其中,所述预设筛选条件可以根据实际应用场景需要设置。例如,本说明书一个或多个实施例中,针对多个待检测数据表,执行三轮筛选,包括:先针对多个待检测数据表,按查询次数从多到少排序,筛选出排序在前m位的数据表;再将前m位的数据表,按数据倾斜度从大到小排序,筛选出排序在前n位的数据表;最后从前n位的数据表中,筛选出操作性能指标大于或等于预设操作性能指标阈值的数据表,作为待优化数据表。在上述筛选过程中,得到的筛选结果可以表现为数据表的表标识,如表名。该实施例中,操作次数这个辅助诊断指标对应的预设筛选条件为:按操作次数从多到少排序,筛选出排序在前m位;数据倾斜度这个辅助诊断指标对应的预设筛选条件为:按数据倾斜度从大到小排序,筛选出排序在前n位;操作性能指标对应的预设筛选条件为:大于或等于预设操作性能指标阈值。其中,n和m为正整数。95.下述结合图3,对本说明书一个实施例提供的数据表性能检测方法在数据库查询场景中的应用进行示例性说明。具体地,图3示出了本说明书一个实施例提供的数据表性能检测方法在查询应用场景中的实施架构图。如图3所示,该实施架构中包括:数据库实例、日志采集模块、解析与保存模块和诊断模块。96.其中,数据库实例,可以理解为提供给用户使用的数据库。数据库实例中,查询等数据操作,可以实时产生数据库操作日志。例如,对于查询,数据库操作日志可以理解为查询的执行日志。数据库操作日志由日志采集模块采集,并输入到解析与保存模块。解析与保存模块,用于解析数据库操作日志,获得数据库中多个待检测数据表的数据操作信息,并利用数据操作信息,确定数据表的操作性能指标和辅助诊断指标,如数据倾斜度、查询次数、查询提交时间和/或查询中数据读取总量等辅助诊断指标。解析与保存模块将各个待检测数据表的表标识、查询任务标识、操作性能指标和辅助诊断指标,如数据倾斜度等等,保存到诊断数据表。例如,所述诊断数据表可以是分析型数据库中的数据表。当需要筛选待优化数据表时,诊断模块可以从诊断数据表中读取相关信息,进行待优化数据表的选择,最后输出包含待优化数据表的诊断结果。97.日志采集模块,可以从数据库内部进行数据库操作日志的采集。日志采集模块采集的数据库操作日志,可以包含多项数据操作信息。例如:日志采集模块,可以从分布式数据库系统内部采集查询等数据操作相应的数据库操作日志,其中包含了查询等操作过程中的多项数据操作信息,例如可以包括查询过程耗时、内存消耗、数据读取量、分布式子任务等详细数据操作信息。另外,数据库操作日志还可以被发送到分布式数据库实例外部的存储系统中进行存储。98.解析与保存模块,可以通过一般的etl(extract-transform-load,抽取-转换-加载)数据清洗技术,对数据库操作日志进行解析,解析出的数据操作信息可以包括:查询过程耗时、查询任务相关的表名、查询任务在数据读取阶段的数据量和读取阶段耗时等信息。经过本说明书实施例提供的方法的计算,针对一个待测数据表,可以得到基于数据读取耗时和查询过程的耗时确定的操作性能指标、和数据倾斜度等辅助诊断指标,并按需将一些数据操作信息、操作性能指标、和辅助诊断指标等信息保存到如下诊断数据表中。[0099][0100][0101]诊断数据表[0102]如上诊断数据表中,可以包括:[0103]表标识字段,可以理解为上表中的表名字段,用于保存表名;[0104]查询任务标识字段,可以理解为上表中的查询标识字段,用于保存查询标识,可以通过与表名结合来唯一区分各个数据表的查询任务;[0105]查询提交时间字段,用于保存查询提交时间。通过查询提交时间来选择进行筛选的时间范围,降低筛选需要的数据量,提高筛选效率。[0106]查询表数据量字段,可以理解为上表中的表数据读取总行数字段,用于保存数据表的数据读取总行数。该字段可以用来过滤总行数较小的数据表,由于总行数低于一定阈值的数据表通常认为对数据库整体性能影响较小,因此,可以根据数据读取总行数来进行待优化数据表的筛选。[0107]数据倾斜度字段,用于保存数据表的数据倾斜度。在各个数据分片上数据读取时,最大行数和平均行数的比值作为数据倾斜度。由于数据倾斜度低的数据表通常认为对数据库整体性能影响较小,因此,可以根据数据倾斜度进行待优化数据表的筛选。[0108]操作性能指标字段,用于保存查询任务中多个子查询任务中,读取数据耗时最长的子任务,读取数据耗时占整体查询耗时的占比。由于该占比较低的数据表对数据库整体性能影响较小,因此,可以根据操作性能指标进行待优化数据表的筛选。[0109]首先,对查询应用场景中解析与保存模块计算数据倾斜度的实施方式进行示例性说明。在查询应用场景中,基于数据库操作日志可以获取一个查询任务中的每个子任务在执行时的数据读取量,例如,所述数据读取量可以由数据行数来表示。将一个查询任务的各个子任务读取的数据行数进行处理,即可得到该数据表的数据倾斜度。具体地,如图4所示的数据倾斜度计算处理过程流程图,一个待检测数据表的数据倾斜度计算处理过程可以包括:[0110]步骤402:从数据库操作日志提取一个查询任务针对一个待测数据表的多个子任务的数据读取行数。[0111]步骤404:确定各个子任务的数据读取行数最大值,和数据读取行数的平均值。[0112]步骤406:判断数据读取行数最大值是否大于或等于预设行数阈值、且数据读取行数最大值与数据读取行数的平均值的比值大于或等于预设数据倾斜度阈值。[0113]步骤408:如果是,将数据读取行数最大值与数据读取行数的平均值的比值,作为该待检测数据表的数据倾斜度。[0114]步骤410:将待检测数据表的数据倾斜度与该待检测数据表的表名和该查询任务的标识对应地保存在诊断数据表中。[0115]例如:假设数据读取行数最多的子任务,读取的数据行数为20000、多个子任务的数据读取行数的平均值为2500,预设数据倾斜度阈值为3,由于数据倾斜度等于20000除以2500,结果为8,大于预设数据倾斜度阈值3,因此,将该待检测数据表的数据倾斜度8与该待检测数据表的表名和该查询任务的标识对应地保存在诊断数据表中,作为待优化数据表的候选,继续参与基于操作性能指标的筛选,以确定该数据表是否为需要优化的数据表。[0116]接下来,对查询应用场景中解析与保存模块计算操作性能指标的实施方式进行示例性说明。在查询应用场景中,基于数据库操作日志可以获取一个查询任务中,多个子任务各自的数据读取耗时,从中找出最大的数据读取耗时,计算最大的数据读取耗时与该查询任务的整体耗时的比值,即得到操作性能指标。具体地,如图5所示的操作性能指标计算处理过程流程图,一个待检测数据表的操作性能指标计算处理过程可以包括:[0117]步骤502:从数据库操作日志提取一个查询任务针对一个待测数据表的多个子任务的数据读取耗时。[0118]步骤504:从多个子任务的数据读取耗时中,确定最大的数据读取耗时。[0119]步骤506:计算最大的数据读取耗时与查询任务的整体耗时的比值,得到操作性能指标。[0120]步骤508:将待检测数据表的操作性能指标与该待检测数据表的表名和该查询任务的标识对应地保存在诊断数据表中。[0121]在该计算处理过程中,针对分布式数据库中,查询整体耗时是由子任务的最大耗时决定的,因此,将最大的数据读取耗时和查询的整体耗时的比值作为操作性能指标,并存储到诊断数据表,作为筛选待优化数据表的条件。[0122]下面,再对本说明书一个或多个实施例中,所述诊断模块根据诊断数据表筛选待优化数据表的处理过程进行示例性说明。示例性地,诊断模块通过三轮筛选,筛选出最终的待优化数据表,包括:[0123]第一轮筛选:对诊断数据表中,各个待检测数据表涉及的查询次数进行排序,筛选前m个待检测数据表进入第二轮筛选,m是大于零的整树,具体数值可以根据实施需要进行设置;[0124]第二轮筛选:针对进入第二轮筛选的待检测数据表,判断待检测数据表的数据倾斜度是否大于或等于预设数据倾斜度阈值、且数据读取行数最大的子任务的数据读取行数是否大于或等于预设行数阈值,如果是,则该待检测数据表进入第三轮筛选;[0125]第三轮筛选:针对进入第三轮筛选的待检测数据表,基于待检测数据表的操作性能指标进行最后的筛选。[0126]具体地,如图6所示的三轮筛选处理过程示意图,待检测数据表的三轮筛选处理过程可以包括:[0127]步骤602:将诊断数据表中各个待检测数据表,按查询次数从多到少进行排序,筛选出前m个待检测数据表,m为正整数。[0128]在该步骤中,基于查询次数进行筛选,是因为如果某些表没有查询过或者查询次数较少,说明这些表暂时不需要优化,以便把检测精力集中在被查询次数较多的表上,提高检测效率。例如,该步骤的筛选,可以使用分组聚合加排序查询的方式,从诊断数据表查询出前m个待检测数据表。需要说明的是,为了缩小待优化数据表的搜索范围,还可以加入其他辅助诊断指标,如指定查询提交时间的时间区间,来约束查询范围,从而缩小待优化数据表的搜索范围,提高筛选效率。例如,在诊断数据表为sql数据库表的情况下,基于上述诊断数据表,可以使用如“select”这样的sql语句进行步骤602的筛选,其中按查询次数从多到少进行排序的处理可以使用如“desc”这样sql语句。[0129]步骤604:将前m个待检测数据表,按数据倾斜度从大到小进行排序,筛选出前n个待检测数据表,n为小于m的正整数。[0130]基于查询次数对表进行了初步筛选后,在该步骤中,基于数据倾斜度进行进一步地筛选。例如,在诊断数据表为sql数据库表的情况下,基于上述诊断数据表,可以使用如“select”这样的sql语句实现步骤604的筛选,其中按数据倾斜度从大到小进行排序的处理可以使用如“desc”这样sql语句。步骤604进行筛选时,还要以步骤602筛选出的表名作为筛选条件,如使用(table_namein('xxx','xxx'))这样的表达式作为筛选条件,其中的('xxx','xxx')表示步骤602筛选出的表名范围。通过步骤604的筛选,可以针对查询次数筛选后的待检测数据表,在数据倾斜度这个维度上进一步进行筛选。[0131]步骤606:从前n个待检测数据表中,筛选出操作性能指标大于或等于预设操作性能指标阈值的待检测数据表,得到最终的待优化数据表。[0132]基于数据倾斜度进行了进一步筛选之后,在该步骤中,根据数据读取阶段耗时和查询整体耗时确定的操作性能指标进行最后的筛选。例如,在诊断数据表为sql数据库表的情况下,基于上述诊断数据表,可以使用“select”sql语句进行步骤606的筛选,还要以步骤604筛选出的表名作为筛选条件。该步骤606中,主要基于待检测数据表的各个数据分片在数据读取阶段的耗时和查询整体耗时的比值,也即操作性能指标来进行筛选。例如,当操作性能指标大于0.5,则说明数据倾斜的影响程度超过了一半的查询耗时,将这样的数据表作为待优化数据表,优化后会有较大的查询性能提升。[0133]需要说明的是,上述sql语句仅用于对本说明书实施例提供的处理过程进行示例性说明,并不构成对本说明书实施例提供的方法的限制,根据实施场景需要,可以采用任意查询语句进行筛选。[0134]通过上述处理过程可见,根据本说明书实施例提供的数据表性能检测方法,筛选待优化数据表时,分三个筛选阶段对待检测数据表进行多个维度的筛选,给用户提供了需要进行优化处理的数据表,降低用户的数据建模调优门槛。为了提高筛选效率,可以逐步地将各个待检测数据表的表标识、查询任务标识、操作性能指标和辅助诊断指标分别保存在诊断数据表的各个字段中,以便进行筛选。例如,在进行数据库操作日志的清洗时,可以从数据库操作日志中提取出待检测数据表的数据操作信息,例如查询任务标识、表名、查询提交时间等信息,并对这些信息进行格式规范化处理后,保存到诊断数据表;再基于诊断数据表已保存的信息,按照查询次数进行筛选;针对基于查询次数筛选出的待检测数据表计算数据倾斜度,将数据倾斜度保存到诊断数据表,基于数据倾斜度进一步筛选出待优化数据表的候选集合;再针对候选集合中的待检测数据表计算操作性能指标,确定数据倾斜对查询造成的影响,将操作性能指标保存到诊断数据表,基于操作性能指标进一步筛选出需要作优化调整的待优化数据表。[0135]与上述方法实施例相对应,本说明书还提供了数据表性能检测装置实施例,图7示出了本说明书一个实施例提供的一种数据表性能检测装置的结构示意图。如图7所示,该装置包括:[0136]信息获取模块702,被配置为获取待检测数据表的数据操作信息。[0137]耗时获取模块704,被配置为利用所述待检测数据表的数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时。[0138]性能确定模块706,被配置为基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。[0139]本说明书一个或多个实施例中,所述装置还包括:[0140]操作任务确定模块,被配置为利用所述待检测数据表的数据操作信息,确定所述待检测数据表的数据操作任务。[0141]数据读取量确定模块,被配置为获取所述数据操作任务中多个子任务对应的数据读取量,所述待检测数据表被切分为多个数据分片,所述多个数据分片分散存储于多个存储节点,一个所述子任务用于从一个所述存储节点读取出一个所述数据分片的数据并进行数据操作。[0142]倾斜度计算模块,被配置为基于所述多个子任务对应的数据读取量,计算所述待检测数据表的数据倾斜度。[0143]本说明书一个或多个实施例中,所述装置还包括:[0144]优化表筛选模块,被配置为根据所述操作性能指标,从多个所述待检测数据表中筛选出待优化数据表。[0145]本说明书一个或多个实施例中,所述优化表筛选模块,被配置为根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表;所述辅助诊断指标,包括:数据倾斜度、操作次数、操作时间、数据操作任务中子任务的数据读取量最大值、操作中数据读取总量中的至少一项。[0146]本说明书一个或多个实施例中,所述优化表筛选模块,包括:[0147]操作次数筛选子模块,被配置为从各个所述待检测数据表中,筛选出操作次数满足预设操作次数条件的数据表,得到待优化数据表的候选集合。[0148]倾斜度筛选子模块,被配置为从所述待优化数据表的候选集合中,筛选出数据倾斜度满足预设倾斜度条件的数据表,得到更新的待优化数据表的候选集合。[0149]性能指标筛选子模块,被配置为从更新后的候选集合中,确定操作性能指标满足预设操作性能指标条件的数据表,为所述待优化数据表。[0150]本说明书一个或多个实施例中,所述倾斜度计算模块,包括:[0151]数据最大值筛选子模块,被配置为从所述多个子任务中,确定对应的数据读取量最大的第一目标子任务。[0152]倾斜度计算子模块,被配置为计算所述第一目标子任务对应的数据读取量与所述多个子任务对应的数据读取量的平均值的比值,得到所述待检测数据表的数据倾斜度。[0153]本说明书一个或多个实施例中,所述耗时获取模块,包括:[0154]耗时最大值筛选子模块,被配置为从所述多个子任务中,确定对应的数据读取耗时最长的第二目标子任务。[0155]耗时获取子模块,被配置为获取所述第二目标子任务的数据读取耗时,和所述待检测数据表在所述数据操作过程的耗时。[0156]所述性能确定模块,被配置为计算所述第二目标子任务的数据读取耗时,和所述待检测数据表在所述数据操作过程的耗时的比值,得到所述待检测数据表的操作性能指标。[0157]本说明书一个或多个实施例中,所述信息获取模块,被配置为解析数据库操作日志,获得数据库中多个待检测数据表的数据操作信息。所述装置还包括:指标保存模块,被配置为将各个待检测数据表的表标识、数据操作任务标识、操作性能指标和辅助诊断指标分别保存在诊断数据表的各个字段中,所述辅助诊断指标,包括:数据倾斜度、操作次数、操作时间、数据操作任务中子任务的数据读取量最大值和/或操作中数据读取总量。所述优化表筛选模块,被配置为利用所述诊断数据表,从各个所述待检测数据表中筛选出待优化数据表。[0158]本说明书一个或多个实施例中,所述装置还包括:分布优化模块,被配置为针对待优化数据表,重新选择指定字段,所述指定字段用于对所述数据表的数据进行切分得到多个数据分片,所述多个数据分片分散存储于多个存储节点。[0159]上述为本实施例的一种数据表性能检测装置的示意性方案。需要说明的是,该数据表性能检测装置的技术方案与上述的数据表性能检测方法的技术方案属于同一构思,数据表性能检测装置的技术方案未详细描述的细节内容,均可以参见上述数据表性能检测方法的技术方案的描述。[0160]与上述方法实施例相对应,本说明书还提供了数据表性能检测系统实施例,图8示出了本说明书一个实施例提供的一种数据表性能检测系统的结构示意图。如图8所示,该系统包括:检测节点802、数据库服务节点804、计算节点806和多个存储节点808。[0161]所述检测节点802,被配置为应用如本说明书任意实施例所述数据表性能检测方法检测数据库中数据表的操作性能指标。[0162]所述数据库服务节点804,被配置为运行所述数据库,向所述计算节点下发所述数据库的数据操作任务。[0163]所述计算节点806,被配置为对所述数据库的数据表执行数据操作任务。[0164]所述存储节点808,被配置为存储所述数据表的数据分片,所述数据分片通过使用所述数据表的指定字段对所述数据表的数据进行切分得到,所述数据表的多个数据分片分散存储于多个存储节点。[0165]上述为本实施例的一种数据表性能检测系统的示意性方案。需要说明的是,该数据表性能检测系统的技术方案与上述的数据表性能检测方法的技术方案属于同一构思,数据表性能检测系统的技术方案未详细描述的细节内容,均可以参见上述数据表性能检测方法的技术方案的描述。[0166]图9示出了根据本说明书一个实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。[0167]计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(pstn,publicswitchedtelephonenetwork)、局域网(lan,localareanetwork)、广域网(wan,wideareanetwork)、个域网(pan,personalareanetwork)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic,networkinterfacecontroller))中的一个或多个,诸如ieee802.11无线局域网(wlan,wirelesslocalareanetwork)无线接口、全球微波互联接入(wi-max,worldwideinteroperabilityformicrowaveaccess)接口、以太网接口、通用串行总线(usb,universalserialbus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,nearfieldcommunication)。[0168]在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。[0169]计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备等(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(pc,personalcomputer)的静止计算设备。计算设备900还可以是移动式或静止式的服务器。[0170]其中,处理器920用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据表性能检测方法的步骤。[0171]上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据表性能检测方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据表性能检测方法的技术方案的描述。[0172]本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据表性能检测方法的步骤。[0173]上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据表性能检测方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据表性能检测方法的技术方案的描述。[0174]本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据表性能检测方法的步骤。[0175]上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据表性能检测方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据表性能检测方法的技术方案的描述。[0176]上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。[0177]所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地区,根据专利实践,计算机可读介质不包括电载波信号和电信信号。[0178]需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。[0179]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。[0180]以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属
技术领域:
:技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。当前第1页12当前第1页12
技术特征:
1.一种数据表性能检测方法,包括:获取待检测数据表的数据操作信息;利用所述数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时;基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。2.根据权利要求1所述的方法,还包括:根据所述操作性能指标,从多个所述待检测数据表中筛选出待优化数据表。3.根据权利要求2所述的方法,所述方法还包括:获取所述待检测数据表的辅助诊断指标;所述根据所述操作性能指标,从多个所述待检测数据表中筛选出待优化数据表,包括:根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表;所述辅助诊断指标,包括:数据倾斜度、操作次数、操作时间、数据操作任务中子任务的数据读取量最大值、操作中数据读取总量中的至少一项。4.根据权利要求3所述的方法,所述辅助诊断指标包括操作次数和数据倾斜度,所述根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表,包括:从多个所述待检测数据表中,筛选出操作次数满足预设操作次数条件的数据表,得到待优化数据表的候选集合;从所述候选集合中,筛选出数据倾斜度满足预设倾斜度条件的数据表,得到更新的待优化数据表的候选集合;从更新后的候选集合中,确定操作性能指标满足预设操作性能指标条件的数据表,为所述待优化数据表。5.根据权利要求3所述的方法,所述辅助诊断指标包括数据倾斜度,所述获取所述待检测数据表的辅助诊断指标,包括:利用所述待检测数据表的数据操作信息,确定所述待检测数据表的数据操作任务;获取所述数据操作任务中多个子任务对应的数据读取量,所述待检测数据表被切分为多个数据分片,所述多个数据分片分散存储于多个存储节点,一个所述子任务用于从一个所述存储节点读取出一个所述数据分片的数据并进行数据操作;基于所述多个子任务对应的数据读取量,计算所述待检测数据表的数据倾斜度。6.根据权利要求5所述的方法,所述基于所述多个子任务对应的数据读取量,计算所述待检测数据表的数据倾斜度,包括:从所述多个子任务中,确定对应的数据读取量最大的第一目标子任务;计算所述第一目标子任务对应的数据读取量与所述多个子任务对应的数据读取量的平均值的比值,得到所述待检测数据表的数据倾斜度。7.根据权利要求6所述的方法,所述获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时,包括:从所述多个子任务中,确定对应的数据读取耗时最长的第二目标子任务;
获取所述第二目标子任务的数据读取耗时,和所述待检测数据表在所述数据操作过程的耗时;所述基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标,包括:计算所述第二目标子任务的数据读取耗时,和所述待检测数据表在所述数据操作过程的耗时的比值,得到所述待检测数据表的操作性能指标。8.根据权利要求3所述的方法,所述获取待检测数据表的数据操作信息,包括:解析数据库操作日志,获得数据库中多个待检测数据表的数据操作信息;所述方法,还包括:将所述待检测数据表的表标识、数据操作任务标识、操作性能指标和辅助诊断指标分别保存在诊断数据表的各个字段中;所述根据所述操作性能指标和所述辅助诊断指标,从多个所述待检测数据表中筛选出待优化数据表,包括:利用所述诊断数据表的各个字段中存储的待检测数据表的表标识、数据操作任务标识、操作性能指标和辅助诊断指标,以及所述操作性能指标和辅助诊断指标对应的预设筛选条件,从多个所述待检测数据表中筛选出待优化数据表。9.根据权利要求3所述的方法,还包括:针对待优化数据表,重新选择指定字段,所述指定字段用于对所述数据表的数据进行切分得到多个数据分片,所述多个数据分片分散存储于多个存储节点。10.一种数据表性能检测系统,包括:检测节点、数据库服务节点、计算节点和多个存储节点;所述检测节点,被配置为应用如权利要求1-9任一项所述数据表性能检测方法检测数据库中数据表的操作性能指标;所述数据库服务节点,被配置为运行所述数据库,向所述计算节点下发所述数据库的数据操作任务;所述计算节点,被配置为对所述数据库的数据表执行数据操作任务;所述存储节点,被配置为存储所述数据表的数据分片,所述数据分片通过使用所述数据表的指定字段对所述数据表的数据进行切分得到,所述数据表的多个数据分片分散存储于多个存储节点。11.一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-9任意一项所述数据表性能检测方法的步骤。12.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1-9任意一项所述数据表性能检测方法的步骤。
技术总结
本说明书实施例提供数据表性能检测方法、系统、计算设备及计算机可读存储介质,其中所述数据表性能检测方法包括:获取待检测数据表的数据操作信息;利用所述待检测数据表的数据操作信息,获取所述待检测数据表在数据操作过程中的数据读取耗时和所述数据操作过程的耗时;基于所述数据读取耗时和所述数据操作过程的耗时,确定所述待检测数据表的操作性能指标。标。标。
技术研发人员:李勇
受保护的技术使用者:阿里云计算有限公司
技术研发日:2023.05.23
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/