一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法、装置及计算设备与流程

2021-11-05 22:32:00 来源:中国专利 TAG:


1.本技术实施例涉及数据库技术领域,尤其涉及一种数据处理方法、装置及计算设备。


背景技术:

2.一般情况下,每个公司都有自己的结构化查询语言(structured query language,简称sql)数据库,用户可以在客户端基于sql输入事务语句对数据库中的数据进行增删改查等访问操作,如果一条事务语句操作的数据较多或者运行的时间较长,该条查询语句称为大事务语句,由于客户端的处理器的处理能力有限,因此,如果直接处理大事务语句会造成事务语句执行缓慢。


技术实现要素:

3.本技术实施例提供一种数据处理方法、装置及计算设备,用以解决现有技术中事务语句执行缓慢的问题。
4.第一方面,本技术实施例中提供了一种数据处理方法,包括:
5.接收事务语句;
6.若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;
7.根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;
8.分别执行所述多个目标事务语句,以对所述待处理数据进行处理。
9.第二方面,本技术实施例提供了一种数据处理装置,包括:
10.接收模块,用于接收事务语句;
11.确定模块,用于若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;
12.分割模块,用于根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;
13.处理模块,用于分别执行所述多个目标事务语句,以对所述待处理数据进行处理。
14.第三方面,本技术实施例提供一种计算设备,包括处理组件以及存储组件;所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用执行;所述处理组件用于:接收事务语句;若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;分别执行所述多个目标事务语句,以对所述待处理数据进行处理。
15.第四方面,本技术实施例提供一种计算机存储介质,计算机存储介质存储有计算程序,当所述计算程序被计算设备执行时,使处理器至少可以实现如第一方面所述的数据
处理方法。
16.本技术实施例中,通过在客户端接收事务语句;若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;分别执行所述多个目标事务语句,以对所述待处理数据进行处理。本技术实施例提供的技术方案通过对大事务语句进行分割,进一步对分割后的多个目标事务语句进行执行,从而提高了事务语句的执行效率。
17.本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
18.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1示出了本技术提供的数据处理方法一个实施例的流程图;
20.图2示出了本技术提供的数据处理装置一个实施例的结构示意图;
21.图3示出了与本技术提供的与图2对应的计算设备的结构示意图。
具体实施方式
22.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
23.在本技术的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.图1示出了本技术提供的数据处理方法一个实施例的流程图,其中,本实施例的技术方案由客户端执行,其中,本技术实施例中,客户端可以与sql数据库连接且能够对sql数据库中的数据进行操作。如图1所示,该方法包括:
26.101、接收事务语句。
27.一般情况下,每个sql数据库都有相应的接口信息,通过接收用户输入的接口信息以及登录信息,客户端可以连接到sql数据库,以及通过接收用户输入的事务语句,对sql数据库中的数据进行相应的操作。为了表示方便,以下用数据库表示sql数据库。
28.102、若事务语句为大事务语句,则基于大事务语句确定数据库中对应的待处理数据的数据量。
29.可选地,针对每条事务语句,客户端会为其分配处理资源,该处理资源决定了事务语句可以处理的最大处理量,且每条事务语句分配的处理资源都是一致的。为了表示方便,用事务数据最大处理量表示每条事务语句可以处理的最大数据量。当一条事务语句所表示的需要进行处理的待处理数据的数据量大于该事务数据最大处理量或者达到该事务数据最大处理量的预设比例时,该条事务语句为大事务语句。
30.其中,该事务数据最大处理量可以根据处理资源确定,且该事务数据最大处理量可以为最大数据行数或者最大数据存储量。比如,处理资源可以表示为处理器的带宽,假设带宽每秒为2兆比特,事务数据最大处理量可以为1000条数据,或者1兆比特的数据存储量。
31.该事务数据最大处理量还可以基于接收研发人员输入的数据最大处理量来决定。
32.对应的,事务数据最大处理量可以由每条事务语句可以处理的数据的最多行数决定,或者可以由每条事务语句处理的每条数据的大小和读取位置决定。
33.在一个可选的实施例中,在若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量之前还包括:基于执行时间查询函数,构建执行时间查询语句;基于事务语句,利用所述执行时间查询语句确定执行所述事务语句的消耗时间;若所述消耗时间超过预设时间,则将所述事务语句确定为大事务语句。
34.可选地,上述执行时间查询语句例如可以为:
35.set statistics profile on;
36.set statistics io on;
37.set statistics time on;
38.go
39.事务语句可以为delete from a where id<'5000';
40.go
41.set statistics profile off;
42.set statistics io off;
43.set statistics time off;
44.执行上述执行时间查询语句则可以返回执行事务语句delete from a where id<'5000'的消耗时间。
45.其中,预设时间可以结合实际应用情况进行设置,可以为10秒。
46.可选地,该大事务语句可能包括的信息:待处理数据的创建时间、待处理数据的标识、待处理数据所在数据库中的表的名称等。
47.可选地,若事务语句为大事务语句,则基于大事务语句确定数据库中对应的待处理数据的数据量,包括:获取大事务语句中对应的数据查询信息;基于执行计划查询函数,构建执行计划查询语句;基于数据查询信息,利用执行计划查询语句确定大事务语句对应的数据库中待处理数据的数据量。
48.其中,数据查询信息包括:大事务语句对应的数据库表名称以及大事务语句对应的取值范围,该取值范围对应于数据库表中的至少部分数据,取值范围可以为数据库中的数据的标识的取值范围或者数据的创建时间的取值范围等等。
49.其中,该执行计划查询函数可以为explain函数,利用explain函数构建执行计划查询函数,从而在返回的数据中查找到大事务语句对应的数据库中待处理数据的数据量。
50.可选地,针对单位事务数据最大处理量为最大数据行数的情况下,当大事务语句中包含待处理数据的标识、待处理数据所在数据库中的表的名称时,比如,数据库中有两个表,表名分别为a和b,其中,表a中的数据包括标识为0

10000的数据,表b的数据包括标识为10000

20000的数据,此时,大事务语句为delete from a where id<'5000',其中,delete表示删除,from a表示数据来自表a,id<'5000'表示标识小于5000,即该条大事务语句表示删除表a中标识小于5000的数据。
51.进一步的,利用表a以及标识小于5000这两个条件查询待处理数据的数量。
52.可选地,可以利用函数explain查询待处理数据的数量,承接上述假设,那么函数explain对应的执行计划查询函数可以为explain select*from a where a_id<'5000',该条语句标识查询表a中标识小于5000以及标识小于5000的数据行数。
53.可选地,当大事务语句中包含待处理数据的创建时间、待处理数据所在数据库中的表的名称时,还可以根据数据库中每条数据的创建时间进行删除或者更新,比如大事务语句为delete from a where create time>='20190101'and create time<'20200101',即表示删除2019年1月1日至2020年1月1日之间创建的数据。
54.对应的,函数explain对应的执行计划查询函数可以为explain select *from a where create time>='20190101'and create time<'20200101',该条语句表示查询表a中2019年1月1日至2020年1月1日之间创建的数据以及表a中2019年1月1日至2020年1月1日之间创建的数据的行数。
55.103、根据待处理数据的数据量对大事务语句进行分割,得到多个目标事务语句。
56.可选地,可以根据待处理数据的数据量以及事务数据最大处理量对大事务语句进行分割。
57.可以利用待处理数据的数据量除以事务数据最大处理量得到目标事务语句的分割数量,从而基于目标事务语句的分割数量,形成多个目标事务语句。
58.需要说明的是,在待处理数据的数据量不是事务数据最大处理量的整数倍的情况下,多个目标事务语句的分割数量为待处理数据的数据量除以事务数据最大处理量的整数部分加一。进一步的,多个目标事务语句对应的处理量可以为待处理数据的数据量除以分割数量得到的数据量,或者多个目标事务语句中某一事务语句对应的处理量为待处理数据的数据量除以事务数据最大处理量的余数部分,其他目标事务语句对应的处理量为事务数据最大处理量。
59.在一个可选的实施例中,待处理数据的数据量为5500行,事务数据最大处理量为1000行,待处理数据的数据量除以事务数据最大处理量为5.5,因此,目标事务语句的分割数量为6个。6个目标事务语句的各自对应的处理量情况可以为:6个目标事务语句各自对应的处理量均为5500/6行;或者5个目标事务语句各自对应的处理量均为1000行,另一个目标事务语句对应的处理量为500行。
60.进一步的,在进行上述分割的过程中,需要考虑到处理器的实际处理能力,即每个事务处理的数据达到单位事务数据最大处理量的某一比例可以最大限度应用处理器的资源且不为处理器带来过大负担。
61.可选地,根据待处理数据的数据量对大事务语句进行分割,得到多个目标事务语句之前,还包括:获取事务数据最大处理量;根据待处理数据的数据量对大事务语句进行分
割,得到多个目标事务语句包括:利用事务数据最大处理量乘以预设比例,得到目标事务实际处理量;利用待处理数据的数据量除以目标事务实际处理量,得到目标事务的分割数量;基于目标事务实际处理量以及分割数量,得到多个目标事务语句。
62.一般情况下,当每个事务在处理数据的行数不超过单位事务数据最大处理量的75%时,消耗的处理器资源比较稳定,且处理速度较快,当处理数据的行数超过该数值时,消耗的处理器资源将有一个阶跃的跳变,即会对处理器造成负担,且处理数据的速度会下降。因此,一般情况下,将单位事务数据最大处理量的75%作为分割后的目标事务实际处理量。
63.可选地,基于目标事务实际处理量以及分割数量,得到多个目标事务语句包括:确定大事务语句所涉及的数据库表以及数据库表对应的数据取值范围;按照待处理数据的数据量以及分割数量,对数据库表对应的数据取值范围进行分割,得到多个子查询信息;将多个子查询信息分别替换大事务语句中数据查询信息对应的字段信息,获得多个目标事务语句。
64.对应的,子查询信息包括:事务语句对应数据库表以及事务语句对应的数据库表的数据取值范围,其中,即事务语句对应的数据库表的数据取值范围不大于上述大事务语句的数据库表的数据取值范围,比如数据查询信息的数据取值范围为id<'5000',且目标事务实际处理量为1000行,待处理数据的数据量为5000行,那么子查询信息中的数据取值范围可以为id<'1000'、d>'1000'and id<'2000'、id>'2000'and id<'3000'、id>'3000'and id<'4000'或者id<'5000'。
65.上述形成多个目标事务语句的过程可以为:基于大事务语句包括的信息,比如,该信息为待处理数据的标识、待处理数据所在数据库中的表的名称,则基于待处理数据的标识具体的范围对大事务语句进行分割,比如,原大事务语句为delete from a where id<'5000',并且该大事务语句对应的待处理数据的数据量为5000行数据,目标事务实际处理量为1000行数据,则分割结果为5条事务语句,分别为delete from a where id<'1000';delete from a where id>'1000'and id<'2000';delete from a where id>'2000'and id<'3000';delete from a where id>'3000'and id<'4000';delete from a where id>'4000'and id<'5000'。
66.104、分别执行多个目标事务语句,以对待处理数据进行处理。
67.为了进一步对待处理数据的具体处理内容进行监控,可选地,在分别执行多个目标事务语句,以对待处理数据进行处理之后,还包括:汇总多个目标事务语句各自对应的数据处理子结果,得到多个目标事务语句的数据处理总结果;输出数据处理总结果以供用户查看。
68.处理子结果可以显示在客户端的显示界面上,该处理子结果可以包括目标事务语句处理的多个数据,处理的数据量,以及处理数据的存储位置等等。对应的,可以将多个处理子结果显示在各自对应的显示界面上,也可以将多个处理子结果同时显示在同一界面上,具体显示方式可以灵活设定,在此不再赘述。
69.在一个可能的实施例中,上述步骤101

103可以在第三方程序中实现,该第三方程序可以是指能够与客户端进行连接且能够接收大事务语句的开发程序。步骤101

103的具体执行过程参见上文的描述,在此不再赘述。
70.本技术实施例中,通过在客户端接收事务语句;若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;分别执行所述多个目标事务语句,以对所述待处理数据进行处理。本技术实施例提供的技术方案通过对大事务语句进行分割,进一步对分割后的多个目标事务语句进行执行,从而提高了事务语句的执行效率。
71.图2示出了本技术提供的数据处理装置一个实施例的结构示意图,如图2所述,该装置包括:接收模块21、确定模块22、分割模块23和处理模块24。
72.接收模块21,用于接收事务语句;
73.确定模块22,用于若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;
74.分割模块23,用于根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;
75.处理模块24,用于分别执行所述多个目标事务语句,以对所述待处理数据进行处理。
76.可选地,确定模块22具体用于获取所述大事务语句中对应的数据查询信息;基于执行计划查询函数,构建执行计划查询语句;基于所述数据查询信息,利用所述执行计划查询语句确定所述大事务语句对应的数据库中待处理数据的数据量。
77.可选地,上述装置还包括:
78.获取模块,用于获取事务数据最大处理量。
79.可选地,分割模块23具体用于利用所述事务数据最大处理量乘以预设比例,得到目标事务实际处理量;利用所述待处理数据的数据量除以所述目标事务实际处理量,得到目标事务的分割数量;基于所述目标事务实际处理量以及所述目标事务的分割数量,得到多个目标事务语句。
80.可选地,分割模块23还具体用于确定所述大事务语句所涉及的数据库表名以及所述数据库表名对应的数据取值范围;按照所述目标数据处理量以及所述目标事务实际处理量,对所述数据库表对应的数据取值范围进行分割,得到多个子查询信息;将所述多个子查询信息分别替换所述大事务语句中数据查询信息对应的字段信息,获得多个目标事务语句。
81.可选地,上述装置还包括:
82.构建模块,用于基于执行时间查询函数,构建执行时间查询语句。
83.可选地,确定模块22,还具体用于基于事务语句包含的数据查询信息,利用所述执行时间查询语句确定执行所述事务语句的消耗时间;若所述消耗时间超过预设时间,则将所述事务语句确定为大事务语句。
84.可选地,上述装置还包括:
85.汇总模块,用于汇总所述多个目标事务语句各自对应的数据处理子结果,得到所述多个目标事务语句的数据处理总结果。
86.输出模块,用于输出所述数据处理总结果以供用户查看。
87.图2所述的数据处理装置可以执行图1所示实施例所述的数据处理方法,其实现原理和技术效果不再赘述。对于上述实施例中的数据处理装置其中各个模块、单元执行操作
的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
88.在一个可能的设计中,图2所示实施例的数据处理装置可以实现为计算设备,如图3所示,该计算设备可以包括存储组件301以及处理组件302;
89.所述存储组件301存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件调用执行。
90.所述处理组件302用于:
91.接收事务语句;
92.若所述事务语句为大事务语句,则基于所述大事务语句确定数据库中对应的待处理数据的数据量;
93.根据所述待处理数据的数据量对所述大事务语句进行分割,得到多个目标事务语句;
94.分别执行所述多个目标事务语句,以对所述待处理数据进行处理。
95.其中,处理组件302可以包括一个或多个处理器来执行计算机指令,以完成上述的方法中的全部或部分步骤。当然处理组件也可以为一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
96.存储组件301被配置为存储各种类型的数据以支持在终端的操作。存储组件可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
97.显示组件303可以为电致发光(el)元件、液晶显示器或具有类似结构的微型显示器、或者视网膜可直接显示或类似的激光扫描式显示器。
98.当然,计算设备必然还可以包括其他部件,例如输入/输出接口、通信组件等。
99.输入/输出接口为处理组件和外围接口模块之间提供接口,上述外围接口模块可以是输出设备、输入设备等。
100.通信组件被配置为便于计算设备和其他设备之间有线或无线方式的通信等。
101.其中,该计算设备可以为物理设备或者云计算平台提供的弹性计算主机等,此时计算设备即可以是指云服务器,上述处理组件、存储组件等可以是从云计算平台租用或购买的基础服务器资源。
102.本技术实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时可以实现上述图1所示实施例的数据处理方法。
103.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
104.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
105.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可
借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
106.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献