基于mssqlserver表分区及自动维护方法及系统的制作方法

文档序号:6526895阅读:667来源:国知局
基于mssql server表分区及自动维护方法及系统的制作方法
【专利摘要】本发明提供了一种基于MSSQL?SERVER表分区及自动维护方法及系统,通过在创建表时对同一类表格涉及数据保留策略并配置相同的分区函数及分区架构和结构定义,进而当需要维护时,按照预先制定的数据保留策略,实现MSSQ?Lserver表分区自动转储历史数据、自动添加新的分区、自动合并已转储数据的旧分区、循环使用文件组等功能。最终对数据保留策略中设定的业务需要数据进行保留,删除或者转储过期的数据,从而达到自动维护大量的已经进行分区的表实现数据库自身维护自己的表单的目的,有效提升数据库存储空间性能,极大的减轻dba的工作量,从而使dba有更多的精力专注于其它关键性领域。
【专利说明】基于MSSQL SERVER表分区及自动维护方法及系统
【技术领域】
[0001]本发明涉及数据库应用领域,尤其是指一种基于MSSQL SERVER表分区及自动维护方法及系统。
【背景技术】
[0002]MSSQL SERVER是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。而在MSSQLSERVER中,表分区(PARTITION)是MSSQLserver数据库的一个组件,该技术最早在MSSQL server2005企业版中引入,这个过程是把数据按某种标准划分成区域存储在不同的文件组中,使用分区可以快速而有效地管理和访问数据子集,从而使大型表或索引更易于管理。就访问MSSQL server数据库的应用而言,逻辑上讲只有一个表,但在物理存储上可能由多个物理的数据文件组成。每个文件组存放一个数据分区的数据,每个数据分区都是一个独立的对象,可以独自处理,也可以作为一个更大对象的一部分进行处理。
[0003]目前,MSSQL server展到MSSQL server2012,数据表分区的方式仍然采用MSSQLserver2005的方法进行操作。MSSQL server的数据表分区种类很单一,类似于oracle/mysql的range分区。MSSQL server数据表分区主要通过以下步骤来实现:
[0004]创建分区函数以指定如何分区使用该函数的表;
[0005]创建分区架构以指定分区函数的分区在文件组上的位置;
[0006]创建使用分区架构的表;
[0007]分区表上创建唯一索引,索引列必须包含分区列,且分区列不为null ;
[0008]由此,当MSSQL server数据库使用时间越长,积累的数据越来越多,性能会急剧下降。
[0009]现有技术中,一般采取两种传统方式来提高性能一即数据表瘦身与表分区。
[0010]其中,数据表瘦身即将现有表中不再使用的数据删除,使用频率低的数据转储为历史表。对于一个复杂的业务系统而言,一般很少进行数据删除,这样就造成数据库出现大型表或者巨型表,使得该表的数据查询缓慢,因此大多数数据表瘦身倾向于转储为历史表。
[0011]而MSSQL server表分区技术应用于海量数据的相关应用领域时,由于MSSQLserver表分区自身的特点,当表分区的数量会和文件组的数量一样多,这增加了数据文件的管理难度。此外,当数据达到分区函数的极限时,需要手动进行扩展并新建新的文件组来存储新的数据,会因数据文件过多而增加数据文件管理难度;手动维护众多(少则几十来张,多则上百张)分区表,给dba带来维护的工作量确实比较大。

【发明内容】

[0012]本发明的目的在于克服了上述缺陷,提供一种基于MSSQL SERVER表分区及自动维护方法及系统。[0013]本发明的目的是这样实现的:一种基于MSSQL SERVER表分区及自动维护方法,它包括分区步骤及自动维护步骤;
[0014]所述分区步骤包括,对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构;
[0015]所述自动维护步骤包括,判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构;
[0016]上述方法中,它还包括计划任务步骤,所述任务步骤包括设定触发条件,当触发条件满足时执行自动维护步骤。
[0017]上述方法中,所述计划任务步骤具体包括,
[0018]SI)、进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护步骤;
[0019]S2)、开启执行计划,当满足触发条件时触发执行任务内容;
[0020]S3)、任务计划根据触发时间间隔累加任务触发时间。
[0021]上述方法中,所述分区步骤具体包括,根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括步骤,
[0022]A)、于数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表;所述分区整理状态键名中存储有是否需要进行分区整理的键值;
[0023]B)、根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略;
[0024]C)、根据表分区策略创建表分区函数并执行;
[0025]D)、创建表分区架构:首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小;
[0026]E)、根据业务定义的表结构定义表分区架构。
[0027]上述方法中,所述自动维护步骤具体包括,
[0028]F)、从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则继续步骤,否则结束;
[0029]G)、根据业务定义的表结构创建一个临时表;
[0030]H)、获取当前表名的表分区中最小或最早的分区序号;
[0031]I)、分区交换数据,将获取的分区序号对应分区中的数据移动至临时表中;
[0032]J)、修改分区架构,将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号;
[0033]K)、修改分区函数,删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围;
[0034]L)、将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。[0035]上述方法中,所述步骤K与L之间还包括,删除临时表或根据历史表的命名规则,重命名临时表并存储为历史转储表。
[0036]本发明还涉及一种基于MSSQL SERVER表分区及自动维护系统,它包括分区模块及自动维护模块;
[0037]所述分区模块,用于对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构;
[0038]所述自动维护模块,用于判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
[0039]上述中,它还包括计划任务模块,用于设定触发条件,当触发条件满足时执行自动维护模块;
[0040]所述计划任务模块具体包括,
[0041]计划制定单元,用于进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件而后转到计划开启单元;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护模块;
[0042]计划开启单元,用于开启执行计划,当满足触发条件时触发执行任务内容而后转到时间累加单元;
[0043]时间累加单元,用于根据触发时间间隔累加任务触发时间;
[0044]上述中,所述分区模块,用于根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行通过表创建单元创建表;
[0045]所述表创建单元包括,
[0046]添加表分区管理表单元,用于在数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表而后转到表分区策略设计单元;所述分区整理状态键名中存储有是否需要进行分区整理的键值;
[0047]表分区策略设计单元,用于根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略而后转到表分区函数创建单元;
[0048]表分区函数创建单元,用于根据表分区策略创建表分区函数并执行而后转到表分区架构创建单元;
[0049]表分区架构创建单元,用于首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小,转到表分区架构定义单元;
[0050]表分区架构定义单元,用于根据业务定义的表结构定义表分区架构;
[0051]上述中,所述自动维护模块具体包括,
[0052]分区整理判断单元,用于从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则转到临时表创建单元,否则结束;
[0053]临时表创建单兀,用于根据业务定义的表结构创建一个临时表而后转到分区序号获取单元;
[0054]分区序号获取单元,用于获取当前表名的表分区中最小或最早的分区序号,而后转到分区交换数据单元;
[0055]分区交换数据单元,用于将获取的分区序号对应分区中的数据移动至临时表中而后转到分区架构修改单元;
[0056]分区架构修改单元,用于将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号,而后转到分区函数修改单元;
[0057]分区函数修改单元,用于删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围而后转到整理状态更新单元;
[0058]整理状态更新单元,用于将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。
[0059]相比于常见的MSSQL数据分区及维护,本发明的有益效果在于通过在创建表时对同一类表格涉及数据保留策略并配置相同的分区函数及分区架构和结构定义,进而当需要维护时,按照预先制定的数据保留策略,实现MSSQL server表分区自动转储历史数据、自动添加新的分区、自动合并已转储数据的旧分区、循环使用文件组等功能。最终对数据保留策略中设定的业务需要数据进行保留,删除或者转储过期的数据,从而达到自动维护大量的已经进行分区的表实现数据库自身维护自己的表单的目的,有效提升数据库存储空间性能,极大的减轻dba的工作量,从而使dba有更多的精力专注于其它关键性领域。
【专利附图】

【附图说明】
[0060]下面结合附图详述本发明的具体结构
[0061]图1为本发明具体实施例的分区步骤流程图;
[0062]图2为本发明具体实施例的自动维护步骤流程图;
[0063]图3为本发明具体实施例的计划任务步骤流程图。
【具体实施方式】
[0064]为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
[0065]本发明涉及一种基于MSSQL SERVER表分区及自动维护方法,它包括分区步骤及自动维护步骤;
[0066]所述分区步骤包括,对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构;
[0067]所述自动维护步骤包括,判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
[0068]相比于常见的MSSQL数据分区及维护,本发明的有益效果在于通过在创建表时对同一类表格涉及数据保留策略并配置相同的分区函数及分区架构和结构定义,进而当需要维护时,按照预先制定的数据保留策略,实现MSSQL server表分区自动转储历史数据、自动添加新的分区、自动合并已转储数据的旧分区、循环使用文件组等功能。最终对数据保留策略中设定的业务需要数据进行保留,删除或者转储过期的数据,从而达到自动维护大量的已经进行分区的表实现数据库自身维护自己的表单的目的,有效提升数据库存储空间性能,极大的减轻dba的工作量,从而使dba有更多的精力专注于其它关键性领域。
[0069]作为一实施例,上述分区步骤具体包括:
[0070]根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行表创建。
[0071]此处的业务特征包括当前业务特征及各个表的数据量、增长量规模等信息,通过分析从而得到的。
[0072]而数据保留策略,这里提供两种实施例,一种即创建的表分区按时间来分区的,业务需要保留为一定期限(如6个月以内)的数据,另一种方式中创建的表分区表按数量来分的,业务需要保留一定数量(如10000-20000之间)的数据。
[0073]如图1所示,所述表创建包括步骤:
[0074]A)、于数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表;所述分区整理状态键名中存储有是否需要进行分区整理的键值;
[0075]此处添加一个专门的表分区管理表是作为后续判断是否需要进行分区整理的依据。
[0076]B)、根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略;
[0077]C)、根据表分区策略创建表分区函数并执行;
[0078]执行通常是通过编写分区函数的sql脚本并在数据库的查询分析器窗口执行的。
[0079]D)、创建表分区架构:首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小;
[0080]同样,通常的本步骤创建表分区架构是通过将上述内容编写成为创建分区架构的sql脚本并在数据库的查询分析器窗口执行来完成的。
[0081]E)、根据业务定义的表结构定义表分区架构。
[0082]同理,通过编写表创建的sql脚本并在数据库的查询分析器窗口执行,由此整个表分区工作完毕,结束表分区表物理化。
[0083]在一实施例中,如图2所示,上述自动维护步骤具体包括,
[0084]F)、从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则继续步骤,否则结束;
[0085]G)、根据业务定义的表结构创建一个临时表;通常通过编写一个非分区表的建表sql脚本并执行。
[0086]H)、获取当前表名的表分区中最小或最早的分区序号;该序号作为后续变量的依据。即,对应前面分区策略设定为时间的情况,最早序列号的分区是后面处理的依据,而对应数量的情况,则最小分区序号为后续处理的依据。
[0087]I)、分区交换数据,将获取的分区序号对应分区中的数据移动至临时表中;
[0088]通过本步骤即将不符合数据保留策略的数据从原表中移动到一个临时表中,原分区中的数据被清空。
[0089]J)、修改分区架构,将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号;由此处理才能使下次插入的数据使用该分区所在的文件组。
[0090]K)、修改分区函数,删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围;由此使分区函数与分区架构一一对应。
[0091]L)、将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。
[0092]M)、根据以上流程,对每张需要维护的分区表进行上述维护,直至完成。
[0093]在一实施例吗中,上述方步骤K与L之间还包括,删除临时表或根据历史表的命名规则,重命名临时表并存储为历史转储表。本步骤的加入,是对从表中剔除出来不符合数据保留策略的数据的处理,即可以根据需求不要则扔掉(删除),也可以根据一个命名规则存成另外一个历史表留底,从而避免数据的丢失,同时又能为主要工作的表达到“瘦身”的作用。
[0094]作为一实施例,上述方法中,它还包括计划任务步骤,所述任务步骤包括设定触发条件,当触发条件满足时执行自动维护步骤。通过加入计划任务,可使得自动维护的执行按照设定的计划有序的、自动的进行,从而完全达到自动维护的智能化。
[0095]作为一实施例,如图3所示,所述计划任务步骤具体包括,
[0096]SI)、进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护步骤;
[0097]例如,常用的windows操作系统中,就可进入其自带的任务计划,准备为待执行的作业制定执行计划——根据windows的任务计划向导,添加执行任务、设置任务触发时间点、触发时间间隔、执行该任务的用户名及密码。
[0098]S2)、开启执行计划,当满足触发条件时触发执行任务内容,此时就会完成对表的自动维护;
[0099]S3)、任务计划根据触发时间间隔累加任务触发时间。
[0100]综上所述可见,本发明方案是从互联网搜索行业mssql server数据库系统中提炼而来,在实际的数据库开发维护过程中,自动维护着大量的已经进行分区的表,实现数据库自身维护自己的表单,按照预先制定的保留策略,自动保留业务需要的数据,自动删除或者转储过期的数据,对数据库存储空间的维护和性能提升起着至关重要的作用。本发明对于数据挖掘或数据仓库系统中数据维护都有一定的参考价值。
[0101]本发明还涉及一种基于MSSQL SERVER表分区及自动维护系统,它包括分区模块及自动维护模块;
[0102]所述分区模块,用于对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构;
[0103]所述自动维护模块,用于判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
[0104]在一实施例中,上述中,它还包括计划任务模块,用于设定触发条件,当触发条件满足时执行自动维护模块;
[0105]所述计划任务模块具体包括,
[0106]计划制定单元,用于进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件而后转到计划开启单元;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护模块;
[0107]计划开启单元,用于开启执行计划,当满足触发条件时触发执行任务内容而后转到时间累加单元;
[0108]时间累加单元,用于根据触发时间间隔累加任务触发时间;
[0109]在一实施例中,上述中,所述分区模块,用于根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行通过表创建单元创建表;
[0110]所述表创建单元包括,
[0111]添加表分区管理表单元,用于在数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表而后转到表分区策略设计单元;所述分区整理状态键名中存储有是否需要进行分区整理的键值;
[0112]表分区策略设计单元,用于根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略而后转到表分区函数创建单元;
[0113]表分区函数创建单元,用于根据表分区策略创建表分区函数并执行而后转到表分区架构创建单元;
[0114]表分区架构创建单元,用于首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小,转到表分区架构定义单元;
[0115]表分区架构定义单元,用于根据业务定义的表结构定义表分区架构;
[0116]在一实施例中,上述中,所述自动维护模块具体包括,
[0117]分区整理判断单元,用于从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则转到临时表创建单元,否则结束;
[0118]临时表创建单兀,用于根据业务定义的表结构创建一个临时表而后转到分区序号获取单元;
[0119]分区序号获取单元,用于获取当前表名的表分区中最小或最早的分区序号,而后转到分区交换数据单元;
[0120]分区交换数据单元,用于将获取的分区序号对应分区中的数据移动至临时表中而后转到分区架构修改单元;
[0121]分区架构修改单元,用于将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号,而后转到分区函数修改单元;
[0122]分区函数修改单元,用于删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围而后转到整理状态更新单元;
[0123]整理状态更新单元,用于将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。[0124]该系统的有益效果如上述方法所述,在此不做冗述。
[0125]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种基于MSSQL SERVER表分区及自动维护方法,其特征在于:它包括分区步骤及自动维护步骤; 所述分区步骤包括,对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构; 所述自动维护步骤包括,判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
2.如权利要求1所述的基于MSSQLSERVER表分区及自动维护方法,其特征在于:它还包括计划任务步骤,所述任务步骤包括设定触发条件,当触发条件满足时执行自动维护步骤。
3.如权利要求2所述的基于MSSQLSERVER表分区及自动维护方法,其特征在于:所述计划任务步骤具体包括, 51)、进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护步骤; 52)、开启执行计划,当满足触发条件时触发执行任务内容; 53)、任务计划根据触发时间间隔累加任务触发时间。
4.如权利要求1-3任意一项所述的基于MSSQLSERVER表分区及自动维护方法,其特征在于:所述分区步骤具体包括,根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括步骤, A)、于数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表;所述分区整理状态键名中存储有是否需要进行分区整理的键值; B)、根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略; C)、根据表分区策略创建表分区函数并执行; D)、创建表分区架构:首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小; E)、根据业务定义的表结构定义表分区架构。
5.如权利要求1-3任意一项所述的基于MSSQLSERVER表分区及自动维护方法,其特征在于:所述自动维护步骤具体包括, F)、从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则继续步骤,否则结束; G)、根据业务定义的表结构创建一个临时表; H)、获取当前表名的表分区中最小或最早的分区序号; I)、分区交换数据, 将获取的分区序号对应分区中的数据移动至临时表中; J)、修改分区架构,将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号;K)、修改分区函数,删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围; L)、将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。
6.如权利要求5所述的基于MSSQLSERVER表分区及自动维护方法,其特征在于:所述步骤K与L之间还包括,删除临时表或根据历史表的命名规则,重命名临时表并存储为历史转储表。
7.一种基于MSSQL SERVER表分区及自动维护系统,其特征在于:它包括分区模块及自动维护模块; 所述分区模块,用于对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构; 所述自动维护模块,用于判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
8.如权利要求7所述的基于MSSQLSERVER表分区及自动维护系统,其特征在于:它还包括计划任务模块 ,用于设定触发条件,当触发条件满足时执行自动维护模块; 所述计划任务模块具体包括, 计划制定单元,用于进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件而后转到计划开启单元;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护模块; 计划开启单元,用于开启执行计划,当满足触发条件时触发执行任务内容而后转到时间累加单元; 时间累加单元,用于根据触发时间间隔累加任务触发时间。
9.如权利要求7或8所述的基于MSSQLSERVER表分区及自动维护系统,其特征在于:所述分区模块,用于根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行通过表创建单元创建表; 所述表创建单元包括, 添加表分区管理表单元,用于在数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表而后转到表分区策略设计单元;所述分区整理状态键名中存储有是否需要进行分区整理的键值; 表分区策略设计单元,用于根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略而后转到表分区函数创建单元; 表分区函数创建单元,用于根据表分区策略创建表分区函数并执行而后转到表分区架构创建单元; 表分区架构创建单元,用于首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小,转到表分区架构定义单元; 表分区架构定义单元,用于根据业务定义的表结构定义表分区架构。
10.如权利要求7或8所述的基于MSSQLSERVER表分区及自动维护系统,其特征在于:所述自动维护模块具体包括, 分区整理判断单元,用于从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则转到临时表创建单兀,否则结束; 临时表创建单兀,用于根据业务定义的表结构创建一个临时表而后转到分区序号获取单元; 分区序号获取单元,用于获取当前表名的表分区中最小或最早的分区序号,而后转到分区交换数据单元; 分区交换数据单元,用于将获取的分区序号对应分区中的数据移动至临时表中而后转到分区架构修改单元; 分区架构修改单元,用于将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号,而后转到分区函数修改单元; 分区函数修改单元,用于删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围而后转到整理状态更新单元; 整理状态更新单元,用于将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理 。
【文档编号】G06F17/30GK103699676SQ201310750793
【公开日】2014年4月2日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】余有能 申请人:厦门市美亚柏科信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1