CN103699676A - 基于mssql server表分区及自动维护方法及系统 - Google Patents

基于mssql server表分区及自动维护方法及系统 Download PDF

Info

Publication number
CN103699676A
CN103699676A CN201310750793.4A CN201310750793A CN103699676A CN 103699676 A CN103699676 A CN 103699676A CN 201310750793 A CN201310750793 A CN 201310750793A CN 103699676 A CN103699676 A CN 103699676A
Authority
CN
China
Prior art keywords
subregion
data
unit
framework
function
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.)
Granted
Application number
CN201310750793.4A
Other languages
English (en)
Other versions
CN103699676B (zh
Inventor
余有能
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN201310750793.4A priority Critical patent/CN103699676B/zh
Publication of CN103699676A publication Critical patent/CN103699676A/zh
Application granted granted Critical
Publication of CN103699676B publication Critical patent/CN103699676B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于MSSQL SERVER表分区及自动维护方法及系统,通过在创建表时对同一类表格涉及数据保留策略并配置相同的分区函数及分区架构和结构定义,进而当需要维护时,按照预先制定的数据保留策略,实现MSSQ Lserver表分区自动转储历史数据、自动添加新的分区、自动合并已转储数据的旧分区、循环使用文件组等功能。最终对数据保留策略中设定的业务需要数据进行保留,删除或者转储过期的数据,从而达到自动维护大量的已经进行分区的表实现数据库自身维护自己的表单的目的,有效提升数据库存储空间性能,极大的减轻dba的工作量,从而使dba有更多的精力专注于其它关键性领域。

Description

基于MSSQL SERVER表分区及自动维护方法及系统
技术领域
本发明涉及数据库应用领域,尤其是指一种基于MSSQL SERVER表分区及自动维护方法及系统。 
背景技术
MSSQL SERVER是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。而在MSSQLSERVER中,表分区(PARTITION)是MSSQL server数据库的一个组件,该技术最早在MSSQL server2005企业版中引入,这个过程是把数据按某种标准划分成区域存储在不同的文件组中,使用分区可以快速而有效地管理和访问数据子集,从而使大型表或索引更易于管理。就访问MSSQL server数据库的应用而言,逻辑上讲只有一个表,但在物理存储上可能由多个物理的数据文件组成。每个文件组存放一个数据分区的数据,每个数据分区都是一个独立的对象,可以独自处理,也可以作为一个更大对象的一部分进行处理。 
目前,MSSQL server展到MSSQL server2012,数据表分区的方式仍然采用MSSQL server2005的方法进行操作。MSSQL server的数据表分区种类很单一,类似于oracle/mysql的range分区。MSSQL server数据表分区主要通过以下步骤来实现: 
创建分区函数以指定如何分区使用该函数的表; 
创建分区架构以指定分区函数的分区在文件组上的位置; 
创建使用分区架构的表; 
分区表上创建唯一索引,索引列必须包含分区列,且分区列不为null; 
由此,当MSSQL server数据库使用时间越长,积累的数据越来越多,性能会急剧下降。 
现有技术中,一般采取两种传统方式来提高性能——即数据表瘦身与表分 区。 
其中,数据表瘦身即将现有表中不再使用的数据删除,使用频率低的数据转储为历史表。对于一个复杂的业务系统而言,一般很少进行数据删除,这样就造成数据库出现大型表或者巨型表,使得该表的数据查询缓慢,因此大多数数据表瘦身倾向于转储为历史表。 
而MSSQL server表分区技术应用于海量数据的相关应用领域时,由于MSSQL server表分区自身的特点,当表分区的数量会和文件组的数量一样多,这增加了数据文件的管理难度。此外,当数据达到分区函数的极限时,需要手动进行扩展并新建新的文件组来存储新的数据,会因数据文件过多而增加数据文件管理难度;手动维护众多(少则几十来张,多则上百张)分区表,给dba带来维护的工作量确实比较大。 
发明内容
本发明的目的在于克服了上述缺陷,提供一种基于MSSQL SERVER表分区及自动维护方法及系统。 
本发明的目的是这样实现的:一种基于MSSQL SERVER表分区及自动维护方法,它包括分区步骤及自动维护步骤; 
所述分区步骤包括,对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构; 
所述自动维护步骤包括,判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构; 
上述方法中,它还包括计划任务步骤,所述任务步骤包括设定触发条件,当触发条件满足时执行自动维护步骤。 
上述方法中,所述计划任务步骤具体包括, 
S1)、进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件;所述触发条件包括任务触发时间点和触发时间间隔;所述 执行任务内容为执行自动维护步骤; 
S2)、开启执行计划,当满足触发条件时触发执行任务内容; 
S3)、任务计划根据触发时间间隔累加任务触发时间。 
上述方法中,所述分区步骤具体包括,根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括步骤, 
A)、于数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表;所述分区整理状态键名中存储有是否需要进行分区整理的键值; 
B)、根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略; 
C)、根据表分区策略创建表分区函数并执行; 
D)、创建表分区架构:首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小; 
E)、根据业务定义的表结构定义表分区架构。 
上述方法中,所述自动维护步骤具体包括, 
F)、从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则继续步骤,否则结束; 
G)、根据业务定义的表结构创建一个临时表; 
H)、获取当前表名的表分区中最小或最早的分区序号; 
I)、分区交换数据,将获取的分区序号对应分区中的数据移动至临时表中; 
J)、修改分区架构,将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号; 
K)、修改分区函数,删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围; 
L)、将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。 
上述方法中,所述步骤K与L之间还包括,删除临时表或根据历史表的命 名规则,重命名临时表并存储为历史转储表。 
本发明还涉及一种基于MSSQL SERVER表分区及自动维护系统,它包括分区模块及自动维护模块; 
所述分区模块,用于对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构; 
所述自动维护模块,用于判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。 
上述中,它还包括计划任务模块,用于设定触发条件,当触发条件满足时执行自动维护模块; 
所述计划任务模块具体包括, 
计划制定单元,用于进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件而后转到计划开启单元;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护模块; 
计划开启单元,用于开启执行计划,当满足触发条件时触发执行任务内容而后转到时间累加单元; 
时间累加单元,用于根据触发时间间隔累加任务触发时间; 
上述中,所述分区模块,用于根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行通过表创建单元创建表; 
所述表创建单元包括, 
添加表分区管理表单元,用于在数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表而后转到表分区策略设计单元;所述分区整理状态键名中存储有是否需要进行分区整理的键值; 
表分区策略设计单元,用于根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略而后转到表分区函数创建单元; 
表分区函数创建单元,用于根据表分区策略创建表分区函数并执行而后转 到表分区架构创建单元; 
表分区架构创建单元,用于首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小,转到表分区架构定义单元; 
表分区架构定义单元,用于根据业务定义的表结构定义表分区架构; 
上述中,所述自动维护模块具体包括, 
分区整理判断单元,用于从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则转到临时表创建单元,否则结束; 
临时表创建单元,用于根据业务定义的表结构创建一个临时表而后转到分区序号获取单元; 
分区序号获取单元,用于获取当前表名的表分区中最小或最早的分区序号,而后转到分区交换数据单元; 
分区交换数据单元,用于将获取的分区序号对应分区中的数据移动至临时表中而后转到分区架构修改单元; 
分区架构修改单元,用于将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号,而后转到分区函数修改单元; 
分区函数修改单元,用于删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围而后转到整理状态更新单元; 
整理状态更新单元,用于将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。 
相比于常见的MSSQL数据分区及维护,本发明的有益效果在于通过在创建表时对同一类表格涉及数据保留策略并配置相同的分区函数及分区架构和结构定义,进而当需要维护时,按照预先制定的数据保留策略,实现MSSQL server表分区自动转储历史数据、自动添加新的分区、自动合并已转储数据的旧分区、循环使用文件组等功能。最终对数据保留策略中设定的业务需要数据进行保留,删除或者转储过期的数据,从而达到自动维护大量的已经进行分区的表实现数据库自身维护自己的表单的目的,有效提升数据库存储空间性能,极大的减轻 dba的工作量,从而使dba有更多的精力专注于其它关键性领域。 
附图说明
下面结合附图详述本发明的具体结构 
图1为本发明具体实施例的分区步骤流程图; 
图2为本发明具体实施例的自动维护步骤流程图; 
图3为本发明具体实施例的计划任务步骤流程图。 
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。 
本发明涉及一种基于MSSQL SERVER表分区及自动维护方法,它包括分区步骤及自动维护步骤; 
所述分区步骤包括,对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构; 
所述自动维护步骤包括,判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。 
相比于常见的MSSQL数据分区及维护,本发明的有益效果在于通过在创建表时对同一类表格涉及数据保留策略并配置相同的分区函数及分区架构和结构定义,进而当需要维护时,按照预先制定的数据保留策略,实现MSSQL server表分区自动转储历史数据、自动添加新的分区、自动合并已转储数据的旧分区、循环使用文件组等功能。最终对数据保留策略中设定的业务需要数据进行保留,删除或者转储过期的数据,从而达到自动维护大量的已经进行分区的表实现数据库自身维护自己的表单的目的,有效提升数据库存储空间性能,极大的减轻dba的工作量,从而使dba有更多的精力专注于其它关键性领域。 
作为一实施例,上述分区步骤具体包括: 
根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行表创建。 
此处的业务特征包括当前业务特征及各个表的数据量、增长量规模等信息,通过分析从而得到的。 
而数据保留策略,这里提供两种实施例,一种即创建的表分区按时间来分区的,业务需要保留为一定期限(如6个月以内)的数据,另一种方式中创建的表分区表按数量来分的,业务需要保留一定数量(如10000-20000之间)的数据。 
如图1所示,所述表创建包括步骤: 
A)、于数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表;所述分区整理状态键名中存储有是否需要进行分区整理的键值; 
此处添加一个专门的表分区管理表是作为后续判断是否需要进行分区整理的依据。 
B)、根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略; 
C)、根据表分区策略创建表分区函数并执行; 
执行通常是通过编写分区函数的sql脚本并在数据库的查询分析器窗口执行的。 
D)、创建表分区架构:首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小; 
同样,通常的本步骤创建表分区架构是通过将上述内容编写成为创建分区架构的sql脚本并在数据库的查询分析器窗口执行来完成的。 
E)、根据业务定义的表结构定义表分区架构。 
同理,通过编写表创建的sql脚本并在数据库的查询分析器窗口执行,由此整个表分区工作完毕,结束表分区表物理化。 
在一实施例中,如图2所示,上述自动维护步骤具体包括, 
F)、从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则继续步骤,否则结束; 
G)、根据业务定义的表结构创建一个临时表;通常通过编写一个非分区表的建表sql脚本并执行。 
H)、获取当前表名的表分区中最小或最早的分区序号;该序号作为后续变量的依据。即,对应前面分区策略设定为时间的情况,最早序列号的分区是后面处理的依据,而对应数量的情况,则最小分区序号为后续处理的依据。 
I)、分区交换数据,将获取的分区序号对应分区中的数据移动至临时表中; 
通过本步骤即将不符合数据保留策略的数据从原表中移动到一个临时表中,原分区中的数据被清空。 
J)、修改分区架构,将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号;由此处理才能使下次插入的数据使用该分区所在的文件组。 
K)、修改分区函数,删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围;由此使分区函数与分区架构一一对应。 
L)、将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。 
M)、根据以上流程,对每张需要维护的分区表进行上述维护,直至完成。 
在一实施例吗中,上述方步骤K与L之间还包括,删除临时表或根据历史表的命名规则,重命名临时表并存储为历史转储表。本步骤的加入,是对从表中剔除出来不符合数据保留策略的数据的处理,即可以根据需求不要则扔掉(删除),也可以根据一个命名规则存成另外一个历史表留底,从而避免数据的丢失,同时又能为主要工作的表达到“瘦身”的作用。 
作为一实施例,上述方法中,它还包括计划任务步骤,所述任务步骤包括设定触发条件,当触发条件满足时执行自动维护步骤。通过加入计划任务,可使得自动维护的执行按照设定的计划有序的、自动的进行,从而完全达到自动维护的智能化。 
作为一实施例,如图3所示,所述计划任务步骤具体包括, 
S1)、进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内 容及设定触发条件;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护步骤; 
例如,常用的windows操作系统中,就可进入其自带的任务计划,准备为待执行的作业制定执行计划——根据windows的任务计划向导,添加执行任务、设置任务触发时间点、触发时间间隔、执行该任务的用户名及密码。 
S2)、开启执行计划,当满足触发条件时触发执行任务内容,此时就会完成对表的自动维护; 
S3)、任务计划根据触发时间间隔累加任务触发时间。 
综上所述可见,本发明方案是从互联网搜索行业mssql server数据库系统中提炼而来,在实际的数据库开发维护过程中,自动维护着大量的已经进行分区的表,实现数据库自身维护自己的表单,按照预先制定的保留策略,自动保留业务需要的数据,自动删除或者转储过期的数据,对数据库存储空间的维护和性能提升起着至关重要的作用。本发明对于数据挖掘或数据仓库系统中数据维护都有一定的参考价值。 
本发明还涉及一种基于MSSQL SERVER表分区及自动维护系统,它包括分区模块及自动维护模块; 
所述分区模块,用于对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构; 
所述自动维护模块,用于判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。 
在一实施例中,上述中,它还包括计划任务模块,用于设定触发条件,当触发条件满足时执行自动维护模块; 
所述计划任务模块具体包括, 
计划制定单元,用于进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件而后转到计划开启单元;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护模块; 
计划开启单元,用于开启执行计划,当满足触发条件时触发执行任务内容而后转到时间累加单元; 
时间累加单元,用于根据触发时间间隔累加任务触发时间; 
在一实施例中,上述中,所述分区模块,用于根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行通过表创建单元创建表; 
所述表创建单元包括, 
添加表分区管理表单元,用于在数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表而后转到表分区策略设计单元;所述分区整理状态键名中存储有是否需要进行分区整理的键值; 
表分区策略设计单元,用于根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略而后转到表分区函数创建单元; 
表分区函数创建单元,用于根据表分区策略创建表分区函数并执行而后转到表分区架构创建单元; 
表分区架构创建单元,用于首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小,转到表分区架构定义单元; 
表分区架构定义单元,用于根据业务定义的表结构定义表分区架构; 
在一实施例中,上述中,所述自动维护模块具体包括, 
分区整理判断单元,用于从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则转到临时表创建单元,否则结束; 
临时表创建单元,用于根据业务定义的表结构创建一个临时表而后转到分区序号获取单元; 
分区序号获取单元,用于获取当前表名的表分区中最小或最早的分区序号,而后转到分区交换数据单元; 
分区交换数据单元,用于将获取的分区序号对应分区中的数据移动至临时表中而后转到分区架构修改单元; 
分区架构修改单元,用于将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号,而后转到分区函数修改单元; 
分区函数修改单元,用于删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围而后转到整理状态更新单元; 
整理状态更新单元,用于将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。 
该系统的有益效果如上述方法所述,在此不做冗述。 
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。 

Claims (10)

1.一种基于MSSQL SERVER表分区及自动维护方法,其特征在于:它包括分区步骤及自动维护步骤;
所述分区步骤包括,对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构;
所述自动维护步骤包括,判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
2.如权利要求1所述的基于MSSQL SERVER表分区及自动维护方法,其特征在于:它还包括计划任务步骤,所述任务步骤包括设定触发条件,当触发条件满足时执行自动维护步骤。
3.如权利要求2所述的基于MSSQL SERVER表分区及自动维护方法,其特征在于:所述计划任务步骤具体包括,
S1)、进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护步骤;
S2)、开启执行计划,当满足触发条件时触发执行任务内容;
S3)、任务计划根据触发时间间隔累加任务触发时间。
4.如权利要求1-3任意一项所述的基于MSSQL SERVER表分区及自动维护方法,其特征在于:所述分区步骤具体包括,根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括步骤,
A)、于数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表;所述分区整理状态键名中存储有是否需要进行分区整理的键值;
B)、根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略;
C)、根据表分区策略创建表分区函数并执行;
D)、创建表分区架构:首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小;
E)、根据业务定义的表结构定义表分区架构。
5.如权利要求1-3任意一项所述的基于MSSQL SERVER表分区及自动维护方法,其特征在于:所述自动维护步骤具体包括,
F)、从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则继续步骤,否则结束;
G)、根据业务定义的表结构创建一个临时表;
H)、获取当前表名的表分区中最小或最早的分区序号;
I)、分区交换数据,将获取的分区序号对应分区中的数据移动至临时表中;
J)、修改分区架构,将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号;
K)、修改分区函数,删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围;
L)、将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。
6.如权利要求5所述的基于MSSQL SERVER表分区及自动维护方法,其特征在于:所述步骤K与L之间还包括,删除临时表或根据历史表的命名规则,重命名临时表并存储为历史转储表。
7.一种基于MSSQL SERVER表分区及自动维护系统,其特征在于:它包括分区模块及自动维护模块;
所述分区模块,用于对同类型的表根据需求设计数据保留策略,同类表基于相同的数据保留策略、分区函数和分区架构进行表创建;所述表创建包括依次创建表分区函数、创建表分区架构,定义表分区结构;
所述自动维护模块,用于判断数据库中的表是否需要进行表分区整理,若需要则将不符合数据保留策略的数据转储到临时表中,而后修改表分区函数、修改表分区架构并重新定义表分区结构。
8.如权利要求7所述的基于MSSQL SERVER表分区及自动维护系统,其特征在于:它还包括计划任务模块,用于设定触发条件,当触发条件满足时执行自动维护模块;
所述计划任务模块具体包括,
计划制定单元,用于进入操作系统的任务计划程序中制定执行计划,包括添加执行任务内容及设定触发条件而后转到计划开启单元;所述触发条件包括任务触发时间点和触发时间间隔;所述执行任务内容为执行自动维护模块;
计划开启单元,用于开启执行计划,当满足触发条件时触发执行任务内容而后转到时间累加单元;
时间累加单元,用于根据触发时间间隔累加任务触发时间。
9.如权利要求7或8所述的基于MSSQL SERVER表分区及自动维护系统,其特征在于:所述分区模块,用于根据业务特征与数据需求为同一个类型的表制定数据保留策略,而后就同类表基于相同的数据保留策略、分区函数和分区架构进行通过表创建单元创建表;
所述表创建单元包括,
添加表分区管理表单元,用于在数据库中添加一个包括表名、触发分区整理值及分区整理状态键名的表分区管理表而后转到表分区策略设计单元;所述分区整理状态键名中存储有是否需要进行分区整理的键值;
表分区策略设计单元,用于根据分区键字段、分区数量计算各分区之间边界值后设计表分区策略而后转到表分区函数创建单元;
表分区函数创建单元,用于根据表分区策略创建表分区函数并执行而后转到表分区架构创建单元;
表分区架构创建单元,用于首先根据分区函数中边界值和/或分区数量在数据库中创建相同数量的文件组,然后根据文件组数量为每个文件组添加一个数据文件,并定义数据文件的增加方式、最大值大小,转到表分区架构定义单元;
表分区架构定义单元,用于根据业务定义的表结构定义表分区架构。
10.如权利要求7或8所述的基于MSSQL SERVER表分区及自动维护系统,其特征在于:所述自动维护模块具体包括,
分区整理判断单元,用于从数据库中的表分区管理表获取表名、触发分区整理值、分区整理状态,依次判断每个表名对应的分区整理状态中键值是否需要进行分区整理,是则转到临时表创建单元,否则结束;
临时表创建单元,用于根据业务定义的表结构创建一个临时表而后转到分区序号获取单元;
分区序号获取单元,用于获取当前表名的表分区中最小或最早的分区序号,而后转到分区交换数据单元;
分区交换数据单元,用于将获取的分区序号对应分区中的数据移动至临时表中而后转到分区架构修改单元;
分区架构修改单元,用于将表分区中获取的分区序号下一个的数据分区序号修改为获取的分区序号,而后转到分区函数修改单元;
分区函数修改单元,用于删除获的分区序号对应的分区范围,从新添加最大或者最新的分区范围而后转到整理状态更新单元;
整理状态更新单元,用于将表分区管理表中本项表名对应的分区整理状态中键值更新为已整理。
CN201310750793.4A 2013-12-30 2013-12-30 基于mssql server表分区及自动维护方法及系统 Active CN103699676B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310750793.4A CN103699676B (zh) 2013-12-30 2013-12-30 基于mssql server表分区及自动维护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310750793.4A CN103699676B (zh) 2013-12-30 2013-12-30 基于mssql server表分区及自动维护方法及系统

Publications (2)

Publication Number Publication Date
CN103699676A true CN103699676A (zh) 2014-04-02
CN103699676B CN103699676B (zh) 2017-02-15

Family

ID=50361204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310750793.4A Active CN103699676B (zh) 2013-12-30 2013-12-30 基于mssql server表分区及自动维护方法及系统

Country Status (1)

Country Link
CN (1) CN103699676B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375903A (zh) * 2014-10-29 2015-02-25 中国建设银行股份有限公司 针对交易流水记录进行异步数据处理的方法和装置
CN105550293A (zh) * 2015-12-11 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于Spark-SQL大数据处理平台的后台刷新方法
CN105550296A (zh) * 2015-12-10 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN106682047A (zh) * 2015-11-11 2017-05-17 杭州华为数字技术有限公司 一种数据导入方法以及相关装置
CN106909556A (zh) * 2015-12-23 2017-06-30 中国电信股份有限公司 内存集群的存储均衡方法及装置
CN107818167A (zh) * 2017-11-08 2018-03-20 顺丰科技有限公司 MySQL分区自动管理方法、系统、设备、存储介质
WO2018119976A1 (zh) * 2016-12-30 2018-07-05 日彩电子科技(深圳)有限公司 应用于数据仓库系统的高效优化数据布局方法
CN111767268A (zh) * 2020-06-23 2020-10-13 平安普惠企业管理有限公司 数据库表分区方法、装置、电子设备及存储介质
CN112035482A (zh) * 2020-09-01 2020-12-04 中国银行股份有限公司 业务表分区方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101876983A (zh) * 2009-04-30 2010-11-03 国际商业机器公司 数据库分区方法与系统
CN102799628A (zh) * 2012-06-21 2012-11-28 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘恒学: "《Oracle程序包按自然方式自动维护分区》", 《电脑编程技巧与维护》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104375903A (zh) * 2014-10-29 2015-02-25 中国建设银行股份有限公司 针对交易流水记录进行异步数据处理的方法和装置
CN106682047A (zh) * 2015-11-11 2017-05-17 杭州华为数字技术有限公司 一种数据导入方法以及相关装置
CN106682047B (zh) * 2015-11-11 2019-11-01 杭州华为数字技术有限公司 一种数据导入方法以及相关装置
CN105550296B (zh) * 2015-12-10 2018-10-30 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN105550296A (zh) * 2015-12-10 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于spark-SQL大数据处理平台的数据导入方法
CN105550293A (zh) * 2015-12-11 2016-05-04 深圳市华讯方舟软件技术有限公司 一种基于Spark-SQL大数据处理平台的后台刷新方法
CN106909556B (zh) * 2015-12-23 2020-03-20 中国电信股份有限公司 内存集群的存储均衡方法及装置
CN106909556A (zh) * 2015-12-23 2017-06-30 中国电信股份有限公司 内存集群的存储均衡方法及装置
WO2018119976A1 (zh) * 2016-12-30 2018-07-05 日彩电子科技(深圳)有限公司 应用于数据仓库系统的高效优化数据布局方法
CN107818167A (zh) * 2017-11-08 2018-03-20 顺丰科技有限公司 MySQL分区自动管理方法、系统、设备、存储介质
CN107818167B (zh) * 2017-11-08 2020-06-30 顺丰科技有限公司 MySQL分区自动管理方法、系统、设备、存储介质
CN111767268A (zh) * 2020-06-23 2020-10-13 平安普惠企业管理有限公司 数据库表分区方法、装置、电子设备及存储介质
CN111767268B (zh) * 2020-06-23 2023-12-01 陕西合友网络科技有限公司 数据库表分区方法、装置、电子设备及存储介质
CN112035482A (zh) * 2020-09-01 2020-12-04 中国银行股份有限公司 业务表分区方法及装置
CN112035482B (zh) * 2020-09-01 2023-08-18 中国银行股份有限公司 业务表分区方法及装置

Also Published As

Publication number Publication date
CN103699676B (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN103699676A (zh) 基于mssql server表分区及自动维护方法及系统
US11093459B2 (en) Parallel and efficient technique for building and maintaining a main memory, CSR-based graph index in an RDBMS
CN104809182B (zh) 基于动态可分裂Bloom Filter的网络爬虫URL去重方法
CN103765381B (zh) 对b+树的并行操作
US11269535B2 (en) Partition splitting method and apparatus, electronic device, and readable storage medium
CN102163232B (zh) 一种支持iec61850对象查询的sql接口实现方法
CN103678609A (zh) 一种基于分布式关系-对象映射处理的大数据查询的方法
CN105956123A (zh) 基于局部更新软件的数据处理方法及装置
CN110147377A (zh) 大规模空间数据环境下基于二级索引的通用查询算法
CN103744960A (zh) 一种基于云平台的元数据索引模型及方法
CN108376156A (zh) 创建数据库索引的方法、装置、服务器及存储介质
CN105991478A (zh) 服务器资源分配方法及其系统
CN109582677A (zh) 基于孩子节点的多粒度分布式读写锁的r树索引优化方法
CN110175175A (zh) 一种基于spark的分布式空间二级索引与范围查询算法
Hagedorn Efficient spatio-temporal event processing with STARK
CN102982186A (zh) 基于oracle数据库系统的range分区表的维护方法和系统
US20170277752A1 (en) Data processing device, data processing method, and recording medium
US11604903B2 (en) Layered analytical modeling of telecom tower structure and scenario analysis
CN103258047B (zh) 一种面向药企作业成本控制数据仓库的数据组织方法
CN112445776B (zh) 基于Presto的动态分桶方法、系统、设备及可读存储介质
CN112000670B (zh) 一种多线程程序数据统一管理方法、系统及电子设备
An et al. Using index in the mapreduce framework
CN105138607A (zh) 一种基于混合粒度分布式内存网格索引的knn查询方法
Ray et al. Parallel in-memory trajectory-based spatiotemporal topological join
CN103544302A (zh) 数据库的分区维护方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant