System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据库管理,尤其涉及一种过程控制系统数据库的数据维护方法和设备。
技术介绍
1、过程控制系统是钢铁行业中承上启下的管理系统。它通过从上级制造执行系统获取主数据,并计算生产设定值,将其发送给下级基础自动化系统进行执行。在生产过程中,过程控制系统获取下级基础自动化系统的实测工艺数据,形成生产实绩,并将其发送给上级制造执行系统。
2、本质上,过程控制系统是一个涉及数据交换、管理和显示的系统。它包括主数据表、实绩数据表、生产实时工艺数据表、日志表、工艺参数配置表、工艺参数历史表等等。当这些表中的数据增多时,可能会影响程序的查询和写入效率。通常情况下,实时数据需要保存至少半年,物料主数据及实绩数据需要保存至少两年。
3、为了确保系统的稳定高效运行,维护人员通常会定期删除早期的历史数据。然而,这种操作不仅增加了人工工作量,还可能导致误操作的风险。
4、一些过程控制系统使用bat命令来定期删除历史数据,但这种方法存在以下问题:1.大量删除数据可能导致数据库短期锁定,从而影响程序的正常运行。2.如果机组停产时间较长,可能会导致数据表被完全清空。3.被删除的数据将无法再次查看。
技术实现思路
1、本专利技术的目的在于克服现有技术中的至少一种缺陷,提出一种数据库的数据维护方法和设备。
2、为实现上述目的,本专利技术提供一种数据库的数据维护方法,包括如下步骤:
3、s1:创建数据库自动维护任务,该数据库自动维护任务至少包括一个子任
4、s2:获取数据库自动维护任务中预期下次删除时间最小的子任务包含的信息,当该子任务包含的预期下次删除时间nextdeltime大于当前系统时间dtnow时,则重新执行步骤s2,当该子任务包含的预期下次删除时间nextdeltime小于或等于当前系统时间dtnow时,则执行步骤s3;
5、s3:按照该子任务包含的信息对数据库中对应的数据表执行数据维护任务,执行数据维护任务时,根据时间字段自动删除所述数据表中keepdays天前的数据,保证所述数据表至少还剩keeprowsmin行数据,且单次删除不得超过deleterowsmax行数据。
6、在一些实施例中,建立数据库自动维护任务,具体包括:建立数据库自动维护表,数据库自动维护表的字段至少包括:表名、保留天数keepdays、最少保留行数keeprowsmin、单次最多删除行数deleterowsmax、预期下次删除时间nextdeltime;
7、数据库自动维护表的每一行一一对应一个子任务。
8、在一些实施例中,步骤s2中,当该子任务包含的预期下次删除时间nextdeltime大于当前系统时间dtnow时,则等待时间t0或t1,然后重新执行步骤s2。
9、在一些实施例中,t0等于nextdeltime减去dtnow的总秒数并向上取整数。
10、t1为设定的时间。
11、在一些实施例中,s3中每次执行数据维护任务后,更新该子任务的预期下次删除时间nextdeltime,等待时间t1,然后进入步骤s2。
12、在一些实施例中,执行数据维护任务前,还包括:判断数据库中是否存在与该子任务包含的表名对应的数据表,若数据库中存在对应的数据表时,则对所述数据表执行数据维护任务,否则,更新该子任务的预期下次删除时间nextdeltime为当前系统时间dtnow加上t2秒,并等待t1秒后进入步骤s2,t2大于t1。
13、在一些实施例中,数据表中的时间字段为一个,执行数据维护任务时,根据该时间字段timefieldname自动删除所述数据表中keepdays天前的数据;
14、或者,
15、数据表中的时间字段为一个或多个,每个子任务包含的信息还包括时间字段timefieldname,该时间字段timefieldname为数据表的其中一个时间字段,执行数据维护任务时,根据该时间字段timefieldname自动删除所述数据表中keepdays天前的数据。
16、在一些实施例中,步骤s 3具体包括:
17、s31:获取所述数据表中所述时间字段timefieldname小于deadlinetime的总行数r1,其中deadlinetime等于当前系统时间dtnow减去保留天数keepdays,若r1大于0,则进入步骤s32;
18、s32:获取所述数据表中总行数r2,获取r1、r2-keeprowsmin、deleterowsmax这三个数据中的最小值deltarget,若deltarget大于0,则进入步骤s33;
19、s33:获取deltime,包括:从所述数据表中按照所述时间字段timefieldname升序查询,跳过deltarget行后,获取第一行的时间字段timefieldname的值即deltime;
20、s34:删除所述数据表中所述时间字段timefieldname小于deltime的所有行,并获取实际删除行数delcnt,若delcnt大于或等于deleterowsmax,则更新该子任务的nextdeltime为当前系统时间dtnow加上t1秒,等待t1秒后进入步骤s2,若delcnt小于deleterowsmax,则更新该子任务的预期下次删除时间nextdeltime为当前系统时间dtnow加上t2秒,并等待t1秒后进入步骤s2,t2大于t1。
21、在一些实施例中,每次执行数据维护任务后,当发现该数据维护任务未维护完成(即当r1、r2-keeprowsmin均大于deleterowsmax的情况)时,则更新该子任务的nextdeltime为当前系统时间dtnow加上t1秒,并等待t1秒后进入步骤s2;当发现该数据维护任务已维护完成(即当r1、r2-keeprowsmin中的任一个小于或等于deleterowsmax的情况)时,则更新该子任务的预期下次删除时间nextdeltime为当前系统时间dtnow加上t2秒,并等待t1秒后进入步骤s2,t2大于t1。
22、在一些实施例中,步骤s31中如果r1等于0,则更新该子任务的预期下次删除时间nextdeltime为当前系统时间dtnow加上t2秒,并等待t1秒后进入步骤s2;
23、和/或,
24、步骤s32中若deltarget小于或等于0,则更新该子任务的预期下次删除时间nextdeltime为当前系统时间dtnow加上t2秒,并等待t1秒后进入步骤s5。
25、在一些实施例中,子任务包含的信息还包括:用于表示是否备份的信息,步骤s33与步骤s34之间还包括如下步骤:根据该子任务包含的信息判断是否本文档来自技高网...
【技术保护点】
1.一种数据库的数据维护方法,其特征在于,包括如下步骤:
2.如权利要求1所述的数据库的数据维护方法,其特征在于:建立数据库自动维护任务,具体包括:建立数据库自动维护表,数据库自动维护表的字段至少包括:表名、保留天数KeepDays、最少保留行数KeepRowsMin、单次最多删除行数DeleteRowsMax、预期下次删除时间NextDelTime;
3.如权利要求1所述的数据库的数据维护方法,其特征在于:步骤S2中,当该子任务包含的预期下次删除时间NextDelTime大于当前系统时间DtNow时,则等待时间T0或T1,然后重新执行步骤S2;T0等于NextDelTime减去DtNow的总秒数并向上取整数,T1为设定的时间;
4.如权利要求1所述的数据库的数据维护方法,其特征在于:执行数据维护任务前,还包括:判断数据库中是否存在与该子任务包含的表名对应的数据表,若数据库中存在对应的数据表时,则对所述数据表执行数据维护任务,否则,更新该子任务的预期下次删除时间NextDelTime为当前系统时间DtNow加上T2秒,并等待T1秒后进入步骤S2
5.如权利要求1所述的数据库的数据维护方法,其特征在于:
6.如权利要求5所述的数据库的数据维护方法,其特征在于:步骤S 3具体包括:
7.如权利要求6所述的数据库的数据维护方法,其特征在于:步骤S31中如果r1等于0,则更新该子任务的预期下次删除时间NextDelTime为当前系统时间DtNow加上T2秒,并等待T1秒后进入步骤S2;
8.如权利要求6所述的数据库的数据维护方法,其特征在于:子任务包含的信息还包括:用于表示是否备份的信息,步骤S33与步骤S34之间还包括如下步骤:根据该子任务包含的信息判断是否需要备份,若是,则执行数据备份步骤后进入步骤S34,若否,则跳过数据备份步骤,进入步骤S34;
9.如权利要求8所述的数据库的数据维护方法,其特征在于:执行数据备份步骤,具体包括:获取所述数据表中所述时间字段TimeFieldName小于delTime的所有行,并生成多行备份表的数据后存入到备份表中;
10.一种数据库的数据维护设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库的数据维护程序,所述数据库的数据维护程序配置为实现如权利要求1至9中任一项所述的数据库的数据维护方法。
...【技术特征摘要】
1.一种数据库的数据维护方法,其特征在于,包括如下步骤:
2.如权利要求1所述的数据库的数据维护方法,其特征在于:建立数据库自动维护任务,具体包括:建立数据库自动维护表,数据库自动维护表的字段至少包括:表名、保留天数keepdays、最少保留行数keeprowsmin、单次最多删除行数deleterowsmax、预期下次删除时间nextdeltime;
3.如权利要求1所述的数据库的数据维护方法,其特征在于:步骤s2中,当该子任务包含的预期下次删除时间nextdeltime大于当前系统时间dtnow时,则等待时间t0或t1,然后重新执行步骤s2;t0等于nextdeltime减去dtnow的总秒数并向上取整数,t1为设定的时间;
4.如权利要求1所述的数据库的数据维护方法,其特征在于:执行数据维护任务前,还包括:判断数据库中是否存在与该子任务包含的表名对应的数据表,若数据库中存在对应的数据表时,则对所述数据表执行数据维护任务,否则,更新该子任务的预期下次删除时间nextdeltime为当前系统时间dtnow加上t2秒,并等待t1秒后进入步骤s2,t2大于t1。
5.如权利要求1所述的数据库的数据维...
【专利技术属性】
技术研发人员:王志军,姚文达,陈韬宇,朱海,
申请(专利权)人:中冶南方工程技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。