CN109885565B - 一种数据表清理方法和装置 - Google Patents
一种数据表清理方法和装置 Download PDFInfo
- Publication number
- CN109885565B CN109885565B CN201910113778.6A CN201910113778A CN109885565B CN 109885565 B CN109885565 B CN 109885565B CN 201910113778 A CN201910113778 A CN 201910113778A CN 109885565 B CN109885565 B CN 109885565B
- Authority
- CN
- China
- Prior art keywords
- cleaned
- cleaning
- data table
- current
- batch number
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据表清理方法和装置,其中,该方法包括:获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。在本发明实施例中,通过调用数据库指令对预设配置表中同一批次号的待清理数据表按照对应的清理方式进行并行清理,解决了现有技术中手动编写执行数据库指令依次清理数据表导致数据表清理效率不高的技术问题。
Description
技术领域
本发明涉及数据库处理技术领域,特别涉及一种数据表清理方法和装置。
背景技术
在大型数据库中一般保存有大量的历史数据,这些历史数据通常都是数据表的形式,由于每日会有大量新增的数据表存入数据库,如果在长时间没有清理数据库中的历史数据表,会导致数据库的存储负担加重,数据库的读写性能下降。为了能够及时的清理数据库中的历史数据表,现有技术通过数据库管理人员依次手动编写执行一条数据库指令对一个数据表进行清理,在待清理的数据表数量很多的情况下,清理的耗时较长且清理的效率不高。
针对上述技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据表清理方法和装置,通过调用数据库指令对预设配置表中同一批次号的待清理数据表按照对应的清理方式进行并行清理,以解决现有技术中在大量数据表待清理的情况下手动编写执行数据库指令依次清理数据表导致清理效率不高的技术问题。
一方面,提供了一种数据表清理方法,包括:
获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
在一实施方式中,根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理,包括:
重复执行以下步骤,直至完成所述预设配置表中各个批次号对应的待清理数据表的清理:
调用数据库指令对当前批次号的待清理数据表按照对应的清理方式,并行进行清理;
确定当前批次号是否为最后一个批次号;
在确定当前批次号非最后一个批次号的情况下,对当前批次号加1作为当前批次号;
从所述预设配置表中,获取当前批次号对应的待清理数据表表名,以及各个待清理数据表的清理方式。
在一实施方式中,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理的过程中,还包括:
确定当前待清理数据表的清理方式;
在确定当前待清理数据表的清理方式是单独无备份的情况下,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是单独备份的情况下,将所述当前待清理数据表备份至历史数据表中,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是分区无备份的情况下,获取所述当前待清理数据表的各个分区名称,等待确定是否按照所述各个分区名称进行循环清理;
在确定当前待清理数据表的清理方式是分区备份的情况下,获取所述当前待清理数据表的各个分区名称,按照所述各个分区名称获取所述当前待清理数据表的各个分区数据,将所述当前待清理数据表的各个分区数据备份至历史数据表中,等待确定是否按照各个分区名称进行循环清理。
在一实施方式中,根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理的过程中,还包括:
确定当前待清理数据表的清理方式是否为循环清理;
在确定当前待清理数据表的清理方式为非循环清理的情况下,对所述当前待清理数据表直接进行清理;
在确定当前待清理数据表的清理方式为循环清理的情况下,从所述预设配置表中获取所述当前待清理数据表的循环值,按照所述循环值所标识的循环次数,对所述当前待清理数据表进行循环清理。
另一方面,提供了一种数据表清理装置,包括:
获取单元,用于获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
清理单元,用于根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
在一实施方式中,所述清理单元用于:
重复执行以下步骤,直至完成所述预设配置表中各个批次号对应的待清理数据表的清理:
调用数据库指令对当前批次号的待清理数据表按照对应的清理方式,并行进行清理;
确定当前批次号是否为最后一个批次号;
在确定当前批次号非最后一个批次号的情况下,对当前批次号加1作为当前批次号;
从所述预设配置表中,获取当前批次号对应的待清理数据表表名,以及各个待清理数据表的清理方式。
在一实施方式中,所述清理单元还用于:
确定当前待清理数据表的清理方式;
在确定当前待清理数据表的清理方式是单独无备份的情况下,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是单独备份的情况下,将所述当前待清理数据表备份至历史数据表中,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是分区无备份的情况下,获取所述当前待清理数据表的各个分区名称,等待确定是否按照所述各个分区名称进行循环清理;
在确定当前待清理数据表的清理方式是分区备份的情况下,获取所述当前待清理数据表的各个分区名称,按照所述各个分区名称获取所述当前待清理数据表的各个分区数据,将所述当前待清理数据表的各个分区数据备份至历史数据表中,等待确定是否按照各个分区名称进行循环清理。
在一实施方式中,所述清理单元还用于:
确定当前待清理数据表的清理方式是否为循环清理;
在确定当前待清理数据表的清理方式为非循环清理的情况下,对所述当前待清理数据表直接进行清理;
在确定当前待清理数据表的清理方式为循环清理的情况下,从所述预设配置表中获取所述当前待清理数据表的循环值,按照所述循环值所标识的循环次数,对所述当前待清理数据表进行循环清理。
又一方面,提供了一种电子设备,包括显示屏、处理器以及存储处理器可执行指令的存储器,所述处理器执行所述指令时实现如下方法的步骤:
获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
又一方面,提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现如下方法的步骤:
获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
本发明实施例通过获取携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式的预设配置表,通过调用数据库指令对预设配置表中同一批次号的待清理数据表按照对应的清理方式进行并行清理,解决了现有技术中手动编写并执行数据库指令依次清理数据表导致数据表清理效率不高的技术问题,到达了提高清理效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例中一种数据表清理方法流程图;
图2是本发明实施例中一种数据表的样式图;
图3是本发明实施例中一种预设配置表的样式图;
图4是本发明实施例中一种ORACLE数据库中数据表清理装置模块图;
图5是本发明实施例中一种ORACLE数据库中数据表清理方法步骤图;
图6是本发明实施例中一种数据表清理装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在大型银行或证券公司中,一般都有大型数据库系统保存业务交易信息,这些业务交易信息可以称为历史数据,保存的形式通常都是数据表的形式。在大型银行或证券公司日常运营中,数量众多的每日业务交易信息在不断地添加至数据系统中,数据库系统中的历史数据会不断地增多,当历史数据积累的量超过数据库系统的负荷时,数据库系统的访问读写功能将会异常,严重情况下,数据库系统中的数据也会丢失,为了保证数据库系统的功能的正常运行,需要对数据库中的历史数据进行清理。现有的清理方法是数据库管理人员通过编写并执行一条数据库指令,对待清理的一条历史数据的数据表进行清理,接着编写下一条数据库指令,对待清理的下一条历史数据的数据表进行清理,直至完成所有待清理历史数据的数据表的清理。但是在存在大量历史数据待清理的情况下,现有的清理方法一个数据库指令执行一次清理的方式耗时较长,且清理效率不高。
基于上述情况,本发明实施例提供一种数据表清理方法,如图1所示,上述方法可以包括如下步骤(步骤S101~步骤S102):
步骤S101,获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式。
数据库中的数据可以是以数据表的形式进行存放的,一种数据表的样式可以如图2所示,可以包含姓名、职位的文本数据,也可以包含年龄、身份证的整数数据。为了保证数据库的性能,数据库管理人员可以不定时对数据中的数据表进行清理。
预设配置表一般是由开发人员来设定,可以将待清理的数据表按照清理方式进行精细地划分。预设配置表的具体形式可以是软件开发的数据配置表,也可以是数据库二维表,本发明对此不做限定。
在预设配置表中可以携带有批次号,其中,一个批次号对应有多个待清理数据表,一个批次号所能配置的待清理数据表的最大数量一般与计算机的线程总数量相关,计算机的总的线程数越多,也就是计算机的多线程并行处理能力越强,能够并行清理的待清理的数据表的最大数值也就越大。例如:待清理的数据表的总数量是1000个,但是计算机A的总线程数量有10个,在这种情况下,计算机A的一次可以多线程并行处理10个待清理数据表,在预设配置表中就可以配置批次号为1~100总共100个批次号,其中,每个批次号就有10个待清理数据表。在待清理数据表的总数量同样是1000个的前提下,计算机B的总线程数量只有8个,计算机B一次可以多线程并行处理8个待清理数据表,那在预设配置表中就可以配置批次号1~125总共125个批次号,其中,每个批次号就有8个待清理数据表。
其中,批次号的顺序可以是待清理数据表的待清理紧急程度顺序,也可以是导入预设配置表中的先后时间顺序,本发明对此并不做限定。
在预设配置表中还可以携带各个批次号的对应待清理数据表的表名和各个批次号对应的待清理数据表的清理方式,其中,表名是数据表在数据库中的唯一标识,待清理数据表的清理方式可以根据待清理的基本属性和待清理数据表的实际清理需要来进行划分,具体可以划分为单独无备份、单独有备份、分区无备份、分区有备份,在上述划分的基础上,清理方式还可以继续划分为循环清理和非循环清理,在非循环清理的情况下,直接对数据表进行清理,在循环清理的情况下,还需要设置循环清理的次数,也就是循环值,可以按照上述循环值进行循环清理。
举例而言,如图3所示,预设配置表中总共有2个批次号,批次号1和批次号2,其中,批次号1中有4个待清理数据表,分别为表A、B、C、D,批次号2中也有4个待清理数据表,分别为表E、F、G、H,字母A、B、C、D、E、F、G、H也是各个待清理数据表的表名,其中,表A的清理方式是单独无备份且循环清理,循环值为3,表B的清理方式是单独有备份且非循环清理,表C的清理方式是分区无备份且循环清理,循环值为8,表D的清理方式是分区有备份且非循环清理。
步骤S102,根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
通过计算机的多线程的处理能力,获取预设配置表中同一个批次号对应的每个待清理数据表按照各自对应的清理方式进行清理,调用数据库指令对同一个批次号对应的待清理数据表进行并行清理,其中,数据库指令可以与数据库的类型相关,可以是MYSQL数据库指令,也可以是ORACLE数据库指令,也可以是DB2数据库指令,本发明对此并不做限定。在计算机完成一个批次号对应的待清理数据表的并行清理后,会按照批次号的顺序依次完成预设配置表中所有批次号对应的待清理数据表的清理。
其中,调用数据库指令进行并行清理的过程具体可以包括如下步骤(步骤S1~步骤S3):
步骤S1,重复执行以下步骤(步骤S2~步骤S4),直至完成所述预设配置表中各个批次号对应的待清理数据表的清理。
在获取预设配置表后,可以按照批次号的顺序依次对各个批次号对应的待清理数据表进行清理。例如:在计算机完成批次号1对应的待清理数据表的清理后,继续清理批次号2对应的待清理数据表的清理,直至完成所有批次号对应的待清理数据表的清理。
步骤S2,调用数据库指令对当前批次号的待清理数据表按照对应的清理方式,并行进行清理。
数据库指令用于对执行待清理数据表的清理,其中,数据库指令可以是一段MYSQL数据库组合指令,也可以是一段ORACLE数据库组合指令。例如:当前批次号是批次号3,批次号3对应的待清理数据表有5个,各个待清理数据表都有对应的清理方式,在这种情况下,调用数据库指令对5个待清理数据表按照各自的清理方式进行并行清理。
步骤S3,确定当前批次号是否为最后一个批次号。
在确定预设配置表中的一个批次号为当前批次号后,可以对当前批次号对应的待清理数据表按照对应的清理方式进行并行清理,直至完成最后一个批次号对应的待清理数据表的清理,确定当前批次号是最后一个批次号且完成上述当前批次号对应的待清理数据表的清理之后,也就完成了预设配置表中整个待清理数据表的清理。
步骤S4,在确定当前批次号非最后一个批次号的情况下,对当前批次号加1作为当前批次号。
确定当前批次号不是最后一个批次号,则对当前批次号加1,将加1后的批次号作为新的当前批次号。例如:当前批次号为批次号4且批次号4对应的待清理数据表已完成清理,批次号4也不是预设配置表中的最后一个批次号,则当前批次号4加1得到批次号5,并将批次号5作为新的当前批次号。
步骤S5,从所述预设配置表中,获取当前批次号对应的待清理数据表表名,以及各个待清理数据表的清理方式。
在得到当前批次号后,获取预设配置表中当前批次号对应的待清理数据表表名以及各个待清理数据表的清理方式,之后会重新执行步骤S2,继续完成当前批次号的待清理数据表的清理。
其中,调用数据库指令对当前批次号对应的待清理数据表进行并行清理的过程具体还可以包括如下步骤(步骤S1~步骤S5):
步骤S1,确定当前待清理数据表的清理方式。
确定当前批次号对应的各个待清理数据表中的一个待清理数据表作为当前待清理数据表,从预设配置表中获取当前待清理数据表的清理方式。例如,当前批次号为批次号1,获取批次号1对应的各个待清理数据表中的第一个表A作为当前待清理数据表,还进一步获取表A的清理方式是单独无备份。
步骤S2,在确定所述当前待清理数据表的清理方式是单独无备份的情况下,等待确定是否需要循环清理。
在确定当前待清理数据表的清理方式是单独无备份时,可以确定当前待清理数据表是单独存放的数据表,且在清理之前无需提前备份,在这种情况下,等待确定后续是否需要循环清理。
步骤S3,在确定当前待清理数据表的清理方式是单独备份的情况下,将所述当前待清理数据表备份至历史数据表中,等待确定是否需要循环清理。
在确定当前待清理数据表的清理方式是单独备份时,就可以确定当前待清理数据表是单独存放的数据表,且在清理之前需要提前备份,在这种情况下,将当前待清理数据表提前备份至历史数据表中,再等待确定是否需要循环清理。
步骤S4,在确定当前待清理数据表的清理方式是分区无备份的情况下,获取所述当前待清理数据表的各个分区名称,等待确定是否按照所述各个分区名称进行循环清理。
在确定当前待清理数据表的清理方式是分区无备份时,可以确定当前待清理数据表是分区存放数据的数据表,且在清理之前不需要提前备份,在这种情况下,确定当前待清理数据表存放数据所在的各个分区名称,再等待确定是否按照所述各个分区名称进行循环清理。
步骤S5,在确定当前待清理数据表的清理方式是分区备份的情况下,获取所述当前待清理数据表的各个分区名称,按照所述各个分区名称获取所述当前待清理数据表的各个分区数据,将所述当前待清理数据表的各个分区数据备份至历史数据表中,等待确定是否按照各个分区名称进行循环清理。
在确定当前待清理数据表的清理方式是分区备份时,可以确定当前待清理数据表是分区存放数据的数据表,且在清理之前需要提前备份,在这种情况下,确定当前待清理数据表存放数据所在的各个分区名称,将各个分区名称中所存放的当前待清理数据表的数据备份至历史数据表中,在确定当前待清理数据表的各个分区中的数据都备份完成后,等待确定是否按照各个分区名称仅循环清理。
其中,根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理的过程中,还可以包括如下步骤(步骤S1~步骤S3):
步骤S1,确定当前待清理数据表的清理方式是否为循环清理。
在确定当前待清理数据表是单独无备份、单独备份、分区无备份以及分区备份中一个清理方式之后,进一步确定当前待清理数据表的清理方式是否为循环清理。
步骤S2,在确定当前待清理数据表的清理方式为非循环清理的情况下,对所述当前待清理数据表直接进行清理。
在确定当前待清理数据表的清理方式为非循环清理时,则调用数据库指令对当前待清理数据表直接进行清理,可以是对单独存放的数据表直接清理,也可以是对分区存放数据的数据表中的各个分区名称下的数据依次直接进行清理。
步骤S3,在确定当前待清理数据表的清理方式为循环清理的情况下,从所述预设配置表中获取所述当前待清理数据表的循环值,按照所述循环值所标识的循环次数,对所述当前待清理数据表进行循环清理。
在确定当前待清理数据表的清理方式为循环清理时,则进一步预设配置表中获取当前批次号中当前待清理数据表的循环值,其中,循环值标识需要循环清理的次数,在在这种情况下,调用数据库指令对当前待清理数据表进行循环清理,可以是对单独存放的数据表直接循环清理,也可以是对分区存放数据的数据表中的各个分区名称下的数据依次直接进行循环清理。
在完成当前批次号对应的当前待清理数据表的清理且同步并行完成当前批次号对应的剩余的待清理数据表的清理之后,从而确定当前批次号对应的待清理数据表的清理完成。
下面结合一个ORACLE数据库中数据表清理的具体实施例对上述方法进行详细的说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
以银行为例,由于每日的业务交易复杂繁多,同时产生记录大量业务交易的历史数据,这些历史数据都存放在大型数据库系统中,且通常的存放形式是数据表,在数据库系统长时间得不到清理的情况下,数据库的存储空间将严重不足,进而导致数据库的读写性能下降甚至数据库系统中数据的丢失。针对这种情况,现有的方法一般是通过数据库管理人员编写一条数据库指令并执行,对需要清理的一个数据表进行清理,接着编写执行下一条数据库指令,对需要清理的下一个数据表进行清理,直至完成所有需要清理的数据表的清理。在大量数据表需要清理的情况下,现有技术的清理方式很容易造成在前一条指令对一个数据表清理未完成,但下一条指令对同一个数据表进行访问或者备份或者再次清理造成锁表时间过长,且顺序依次清理的方式也会造成回滚段,消耗数据库指令执行清理的速度,因此现有的清理方法导致清理耗时较长且清理的效率相对低下。
基于此,本例提供了一种数据库中数据表清理的装置结构图,如图4所示,具体可以包括如下装置:
配置参数获取模块:用于通过备份清理配置表,获取清理配置表中的批次号、待清理数据表表名和待清理数据表的清理方式,待清理数据表的清理方式中的循环值可以作为调用子存储过程(相当于一组数据库指令)进行循环清理的循环参数;
过程调用模块:用于根据批次号、待清理数据表的清理方式,通过DBMS_JOB循环submit(不同批次号)调用各个子存储过程,通过各个子存储过程和待清理数据的清理方式对待清理数据表进行对应清理或备份。其中,同一个批次中的待清理数据表以submit job进行并行处理。
其中,在预先设置的配置表中,开发人员需要注意以下要点:
1)支持循环删除循环清理的参数设置,可以设置循环条数,根据指定的rownum循环数进行循环删除循环清理;
2)确保不同待清理的数据表要尽可能的根据业务数据的特性进行细化分类;
3)确保数据库的用户拥有dba_jobs相关的select权限;
4)支持配置表中参数的个性化设置;
5)支持不同待清理数据表的结构进行定制化开发,可以针对不用待清理数据表的索引情况假如指定hint;
6)支持SQL软解析。
本例还提供了一种数据库中数据表清理的方法流程图,如图5所示,具体可以包括如下步骤:
步骤1:获取配置表中的参数,包括:批次号、各个批次号的待清理数据表的表名和待清理数据表的清理方式,进入步骤2。
步骤2:判断需要清理的批次号是否大于0,如果批次号等于0,直接跳至步骤12,如果批次号大于0,则进入步骤3。
步骤3:按照批次号依次调用子存储过程,顺序处理各个批次号中的待清理数据表,进入步骤4。
步骤4:判断是否有下一个待清理的数据表,如果没有则直接跳至步骤11,如果有则进入步骤5。
步骤5:对各个批次号中配置的待清理的数据表进行并行清理,进入步骤6。
步骤6:判断各个批次中的配置的待清理的数据表的清理方式,进入步骤7。
步骤7:如果待清理数据表的清理方式是第一种方式,可以进入如下步骤(步骤701~步骤703):
步骤701,判断待清理数据表是否需要循环清理,如果不需要,则对待清理数据表直接进行清理,进入步骤,如果需要,进入步骤702;
步骤702,获取待清理数据表的循环值,根据设置的循环值进行delete操作,每次独立提交,进入步骤703;
步骤703,判断清理的数据表中的数据条数是否为0,如果不是,返回步骤702,如果是,进入步骤11。
步骤8:如果待清理数据表的清理方式是第二种方式,先将待清理数据表备份至历史表,接着可以进入如下步骤(步骤801~步骤803):
步骤801,判断待清理数据表是否需要循环清理,如果不需要,则对待清理数据表直接进行清理,进入步骤,如果需要,进入步骤802;
步骤802,获取待清理数据表的循环值,根据设置的循环值进行delete操作,每次独立提交,进入步骤803;
步骤803,判断清理的数据表中的数据条数是否为0,如果不是,返回步骤802,如果是,进入步骤11。
步骤9:如果待清理数据表的清理方式是第三种方式,可以进入如下步骤(步骤901~步骤905):
步骤901,通过数据字典获取待清理数据表的所有分区名称,进入步骤902;
步骤902,判断是否存在下一个分区,如果存在,则返回步骤901,如果不存在,进入步骤903;
步骤903,判断待清理数据表是否需要循环清理,如果不需要,则对待清理数据表中的各个分区的数据直接进行清理,进入步骤,如果需要,进入步骤904;
步骤904,获取待清理数据表的循环值,根据设置的循环值对待清理数据表中的各个分区的数据进行delete操作,每次独立提交,进入步骤905;
步骤905,判断待清理数据表中的数据条数是否为0,如果不是,返回步骤904,如果是,进入步骤11。
步骤10:如果待清理数据表的清理方式是第四种方式,可以进入如下步骤(步骤1001~步骤1006):
步骤1001,通过数据字典获取待清理数据表的所有分区名称,进入步骤902;
步骤1002,判断是否存在下一个分区,如果存在,则返回步骤1001,如果不存在,进入步骤1003;
步骤1003,对待清理数据表中各个分区的数据备份至历史数据表中,进入步骤1004;
步骤1004,判断待清理数据表是否需要循环清理,如果不需要,则对待清理数据表中的各个分区的数据直接进行清理,进入步骤,如果需要,进入步骤1005;
步骤1005,获取待清理数据表的循环值,根据设置的循环值对待清理数据表中的各个分区的数据进行delete操作,每次独立提交,进入步骤1006;
步骤1006,判断待清理数据表中的数据条数是否为0,如果不是,返回步骤1005,如果是,进入步骤11。
步骤11:写日志,记录完成整个清理操作,进入步骤12。
步骤12:直接结束这个清理操作进入步骤13。
步骤13:结束。
基于同一发明构思,本发明实施例中还提供了一种数据表清理装置,如下面的实施例所述。由于一种数据表清理装置解决问题的原理与一种数据表清理方法相似,因此一种数据表清理装置的实施可以参见一种数据表清理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图6是本发明实施例的数据表清理装置的一种结构框图,如图6所示,包括:获取单元601和清理单元602,下面对该结构进行说明。
获取单元601,用于获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
清理单元602,用于根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
上述清理单元602用于:重复执行以下步骤,直至完成所述预设配置表中各个批次号对应的待清理数据表的清理:调用数据库指令对当前批次号的待清理数据表按照对应的清理方式,并行进行清理;确定当前批次号是否为最后一个批次号;在确定当前批次号非最后一个批次号的情况下,对当前批次号加1作为当前批次号;从所述预设配置表中,获取当前批次号对应的待清理数据表表名,以及各个待清理数据表的清理方式。
上述清理单元602还用于:确定当前待清理数据表的清理方式;在确定当前待清理数据表的清理方式是单独无备份的情况下,等待确定是否需要循环清理;在确定当前待清理数据表的清理方式是单独备份的情况下,将所述当前待清理数据表备份至历史数据表中,等待确定是否需要循环清理;在确定当前待清理数据表的清理方式是分区无备份的情况下,获取所述当前待清理数据表的各个分区名称,等待确定是否按照所述各个分区名称进行循环清理;在确定当前待清理数据表的清理方式是分区备份的情况下,获取所述当前待清理数据表的各个分区名称,按照所述各个分区名称获取所述当前待清理数据表的各个分区数据,将所述当前待清理数据表的各个分区数据备份至历史数据表中,等待确定是否按照各个分区名称进行循环清理。
上述清理单元602还用于:确定当前待清理数据表的清理方式是否为循环清理;在确定当前待清理数据表的清理方式为非循环清理的情况下,对所述当前待清理数据表直接进行清理;在确定当前待清理数据表的清理方式为循环清理的情况下,从所述预设配置表中获取所述当前待清理数据表的循环值,按照所述循环值所标识的循环次数,对所述当前待清理数据表进行循环清理。
本发明实施例通过获取预设配置表中的批次号、各个批次号对应的待清理数据表、各个批次号对应的待清理数据表的清理方式,调用数据库指令对预设配置表中同一批次号的待清理数据表按照对应的清理方式进行并行清理,解决了现有技术中手动编写执行数据库指令依次清理数据表导致数据表清理效率不高的技术问题,提高了数据表的清理效率。
本申请实施方式还提供了一种数据表清理的电子设备,所述电子设备具体可以包括输入设备、处理器、存储器。所述电子设备可以用于执行以下步骤:
步骤1:获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
步骤2:根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该电子设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种数据表清理的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据表清理方法,其特征在于,包括:
获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理;
其中,各批次号中待清理数据表的数量与计算机分配给清理任务的线程数量是相同的,批次号的数量根据待清理数据表的总量和计算机分配给该清理任务的线程数量确定。
2.根据权利要求1所述的方法,其特征在于,根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理,包括:
重复执行以下步骤,直至完成所述预设配置表中各个批次号对应的待清理数据表的清理:
调用数据库指令对当前批次号的待清理数据表按照对应的清理方式,并行进行清理;
确定当前批次号是否为最后一个批次号;
在确定当前批次号非最后一个批次号的情况下,对当前批次号加1作为当前批次号;
从所述预设配置表中,获取当前批次号对应的待清理数据表表名,以及各个待清理数据表的清理方式。
3.根据权利要求1所述的方法,其特征在于,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理的过程中,还包括:
确定当前待清理数据表的清理方式;
在确定当前待清理数据表的清理方式是单独无备份的情况下,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是单独备份的情况下,将所述当前待清理数据表备份至历史数据表中,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是分区无备份的情况下,获取所述当前待清理数据表的各个分区名称,等待确定是否按照所述各个分区名称进行循环清理;
在确定当前待清理数据表的清理方式是分区备份的情况下,获取所述当前待清理数据表的各个分区名称,按照所述各个分区名称获取所述当前待清理数据表的各个分区数据,将所述当前待清理数据表的各个分区数据备份至历史数据表中,等待确定是否按照各个分区名称进行循环清理。
4.根据权利要求1所述的方法,其特征在于,根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理的过程中,还包括:
确定当前待清理数据表的清理方式是否为循环清理;
在确定当前待清理数据表的清理方式为非循环清理的情况下,对所述当前待清理数据表直接进行清理;
在确定当前待清理数据表的清理方式为循环清理的情况下,从所述预设配置表中获取所述当前待清理数据表的循环值,按照所述循环值所标识的循环次数,对所述当前待清理数据表进行循环清理。
5.一种数据表清理装置,其特征在于,包括:
获取单元,用于获取预设配置表,其中,所述预设配置表携带有批次号、各个批次号对应的待清理数据表的表名和各个批次号对应的待清理数据表的清理方式;
清理单元,用于根据所述预设配置表,调用数据库指令对同一批次号的待清理数据表按照对应的清理方式,并行进行清理;
其中,各批次号中待清理数据表的数量与计算机分配给清理任务的线程数量是相同的,批次号的数量根据待清理数据表的总量和计算机分配给该清理任务的线程数量确定。
6.根据权利要求5所述的装置,其特征在于,所述清理单元用于:
重复执行以下步骤,直至完成所述预设配置表中各个批次号对应的待清理数据表的清理:
调用数据库指令对当前批次号的待清理数据表按照对应的清理方式,并行进行清理;
确定当前批次号是否为最后一个批次号;
在确定当前批次号非最后一个批次号的情况下,对当前批次号加1作为当前批次号;
从所述预设配置表中,获取当前批次号对应的待清理数据表表名,以及各个待清理数据表的清理方式。
7.根据权利要求5所述的装置,其特征在于,所述清理单元还用于:
确定当前待清理数据表的清理方式;
在确定当前待清理数据表的清理方式是单独无备份的情况下,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是单独备份的情况下,将所述当前待清理数据表备份至历史数据表中,等待确定是否需要循环清理;
在确定当前待清理数据表的清理方式是分区无备份的情况下,获取所述当前待清理数据表的各个分区名称,等待确定是否按照所述各个分区名称进行循环清理;
在确定当前待清理数据表的清理方式是分区备份的情况下,获取所述当前待清理数据表的各个分区名称,按照所述各个分区名称获取所述当前待清理数据表的各个分区数据,将所述当前待清理数据表的各个分区数据备份至历史数据表中,等待确定是否按照各个分区名称进行循环清理。
8.根据权利要求5所述的装置,其特征在于,所述清理单元还用于:
确定当前待清理数据表的清理方式是否为循环清理;
在确定当前待清理数据表的清理方式为非循环清理的情况下,对所述当前待清理数据表直接进行清理;
在确定当前待清理数据表的清理方式为循环清理的情况下,从所述预设配置表中获取所述当前待清理数据表的循环值,按照所述循环值所标识的循环次数,对所述当前待清理数据表进行循环清理。
9.一种电子设备,包括显示屏、处理器以及存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910113778.6A CN109885565B (zh) | 2019-02-14 | 2019-02-14 | 一种数据表清理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910113778.6A CN109885565B (zh) | 2019-02-14 | 2019-02-14 | 一种数据表清理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885565A CN109885565A (zh) | 2019-06-14 |
CN109885565B true CN109885565B (zh) | 2021-05-25 |
Family
ID=66928112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910113778.6A Active CN109885565B (zh) | 2019-02-14 | 2019-02-14 | 一种数据表清理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885565B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000648B (zh) * | 2020-07-03 | 2022-11-15 | 苏宁云计算有限公司 | 数据清除方法、装置、计算机设备和存储介质 |
CN112286922A (zh) * | 2020-10-29 | 2021-01-29 | 中国平安财产保险股份有限公司 | 一种数据清理方法、装置、设备及存储介质 |
CN112559511B (zh) * | 2021-02-25 | 2021-06-01 | 江苏苏宁银行股份有限公司 | 一种存款系统历史数据清理方法和系统 |
CN113111055A (zh) * | 2021-04-19 | 2021-07-13 | 中国工商银行股份有限公司 | 一种数据表的数据清理方法及装置 |
CN113032406B (zh) * | 2021-05-26 | 2022-04-15 | 四川新网银行股份有限公司 | 一种通过元数据库集中化管理分表的数据归档方法 |
CN113268477B (zh) * | 2021-06-07 | 2023-06-23 | 中国联合网络通信集团有限公司 | 数据表清理方法、装置及服务器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226624A (zh) * | 2008-02-15 | 2008-07-23 | 上海申通轨道交通研究咨询有限公司 | 轨道交通票务数据分级分类处理系统及其方法 |
CN102609875A (zh) * | 2012-01-20 | 2012-07-25 | 中国工商银行股份有限公司 | 一种动态并行处理银行数据的方法及系统 |
CN106681837A (zh) * | 2016-12-29 | 2017-05-17 | 北京奇虎科技有限公司 | 基于数据表的数据淘汰方法及装置 |
CN107451012A (zh) * | 2014-07-04 | 2017-12-08 | 华为技术有限公司 | 一种数据备份方法及流计算系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8730056B2 (en) * | 2008-11-11 | 2014-05-20 | Itron, Inc. | System and method of high volume import, validation and estimation of meter data |
CN104572867A (zh) * | 2014-12-18 | 2015-04-29 | 上海新炬网络信息技术有限公司 | 一种基于Oracle的数据处理方法 |
JP6582819B2 (ja) * | 2015-09-29 | 2019-10-02 | Zekko株式会社 | データベース連携システムおよびデータベース連携用プログラム |
CN105760487B (zh) * | 2016-02-17 | 2019-11-08 | 中国工商银行股份有限公司 | 历史数据清理方法及装置 |
US10042608B2 (en) * | 2016-05-11 | 2018-08-07 | Micron Technology, Inc. | Signed division in memory |
CN107291804A (zh) * | 2017-05-15 | 2017-10-24 | 努比亚技术有限公司 | 数据清理的方法、设备及计算机可读存储介质 |
CN108573036A (zh) * | 2018-04-02 | 2018-09-25 | 携程旅游网络技术(上海)有限公司 | 历史数据的清理方法及其系统、存储介质、电子设备 |
CN109086098A (zh) * | 2018-07-23 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种日志文件清理方法及相关装置 |
-
2019
- 2019-02-14 CN CN201910113778.6A patent/CN109885565B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226624A (zh) * | 2008-02-15 | 2008-07-23 | 上海申通轨道交通研究咨询有限公司 | 轨道交通票务数据分级分类处理系统及其方法 |
CN102609875A (zh) * | 2012-01-20 | 2012-07-25 | 中国工商银行股份有限公司 | 一种动态并行处理银行数据的方法及系统 |
CN107451012A (zh) * | 2014-07-04 | 2017-12-08 | 华为技术有限公司 | 一种数据备份方法及流计算系统 |
CN106681837A (zh) * | 2016-12-29 | 2017-05-17 | 北京奇虎科技有限公司 | 基于数据表的数据淘汰方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109885565A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885565B (zh) | 一种数据表清理方法和装置 | |
US11500626B2 (en) | Intelligent automatic merging of source control queue items | |
US8595732B2 (en) | Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme | |
US8639818B1 (en) | System and method for reliable and timely task completion in a distributed computing environment | |
CN111580939B (zh) | 一种分级异步处理事务的方法及装置 | |
CN104050032A (zh) | 用于有条件的屏障和急迫的屏障的硬件调度的系统和方法 | |
US11366788B2 (en) | Parallel pipelined processing for snapshot data deletion | |
CN108255607A (zh) | 任务处理方法、装置、电子终端及可读存储介质 | |
CN109885642B (zh) | 面向全文检索的分级存储方法及装置 | |
CN112041832A (zh) | 分析作业服务中的计算重用 | |
CN116050797A (zh) | 一种自动排班方法和相关设备 | |
CN111221650A (zh) | 基于进程类型关联的系统资源回收方法及装置 | |
CN107688592B (zh) | 数据清洗的方法及终端 | |
CN108595251A (zh) | 动态图更新方法、装置、存储引擎接口和程序介质 | |
US11281654B2 (en) | Customized roll back strategy for databases in mixed workload environments | |
CN113051279A (zh) | 数据消息的存储方法、存储装置、电子设备及存储介质 | |
CN111767337B (zh) | 区块的验证方法、装置及设备 | |
US9652766B1 (en) | Managing data stored in memory locations having size limitations | |
US9684685B2 (en) | Using message-passing with procedural code in a database kernel | |
CN116107772A (zh) | 多线程的数据处理方法、装置、处理器以及电子设备 | |
CN112559641B (zh) | 拉链表的处理方法及装置、可读存储介质、电子设备 | |
CN106844242B (zh) | 一种数据交换方法和系统 | |
US9798585B2 (en) | Context switching with reader-writer locks | |
US20100257152A1 (en) | Enhanced identification of relevant database indices | |
CN116185940B (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 |