用动态表名优化超大数据量处理能力的方法

文档序号:6610288阅读:367来源:国知局
专利名称:用动态表名优化超大数据量处理能力的方法
技术领域
本发明涉及软件设计,特别是使用中小型数据库系统处理超大数据量的应 用软件设计。
背景技术
中小型数据库系统具有价格低廉、布署容易等优点,被广泛应用。但是, 在处理十万行以上的超大数据量时,中小型数据库的性能明显下降,甚至能导 致系统崩溃而无法继续运行。
通常,中小型数据库应用软件设计时,对表的的划分以内容或功能为标准, 个别表数据量很大时,也只能依靠中小型数据库的处理能力,无其他方法可以 优化超大数据量的处理能力。
少数中小型数据库应用软件的设计,按数据的时间特征对数据库进行划分, 不同时间段的数据库具有名称、结构、功能相同的表。例如,部分财务软件将 每年的数据做为一个数据库进行划分。但这种设计也限制了数据的处理范围, 即一次处理只能在一个数据库内完成。例如,部分财务软件每次只能登录一个 年度,处理一个年度内的数据。这种设计虽然在一定程度上能够避免数据量不 断增长会形成超大数据量的情况,部分地分散了数据处理能力的压力,但是会 产生大量的数据冗余,并因限制数据处理范围而导致软件功能不能完整实现。

发明内容
本发明的主要目的是针对应用中小型数据库处理十万行以上的超大数据量 的软件设计,提出的一种用动态表名来优化中小型数据库处理能力的方法。
本发明的目的是这样实现的对超大数据量分成多个表进行存储及处理, 通过指针对照表来定位数据所在的表,以动态表名的方法实现程序处理不确定 目标表的数据,达到优化超大数据量处理能力的目的。
所述的对超大数据量分成多个表进行存储及处理,包括对超大数据量的划 分、存储所用多个表的命名规则。所述的超大数据量的划分,至少可以有以下三种方式或其组合
1、 按固定时间间隔进行划分,通常以日、周、月、年来划分。
2、 按自动序列标识的固定间隔进行划分。
3、 按某一列值进行划分。
所述的存储所用多个表的命名规则,可以分为前后两部分。前部分是特征 性命名部分,可适用软件设计时所遵从的一般命名规则或特别约定的命名规则。 后部分是序列性命名部分,应为可与数据划分相匹配的一固定长度的数字型字 符串或其他方式构成。后部分可根据应用习惯置前或置中。
所述的通过指针对照表来定位数据所在的表,可以是一个实际存在的表, 也可以用一种相对简单的规则来替代实际存在的表。
所述的通过指针对照表来定位数据所在的表,是指在对数据进行查询、插 入、更新、删除处理时,可以用指定划分标识通过在指针对照表里进行比对来 确定指定数据行所存储的表名。如果是按自动序列标识的固定间隔进行划分的, 且是执行插入操作时,则需要有一种预处理机制确定最后一个表名,即插入数 据所存储的表名。
所述的以动态表名的方法实现程序处理不确定目标表的数据,包括动态表 名方法和处理不确定目标表数据的方法。
所述的动态表名是指程序中使用一变量表名,用动态执行语句或其他方式 来替换为实际的表名的处理方法。
所述的处理不确定目标表数据的方法,是指因为对数据进行分表处理,目 标结果集可能跨表存储,所以在有必要的情况下需要对多个表进行检索和处理。 通常使用循环处理和临时表的方法进行处理。
所述的在有必要的情况下是指通过指针对照表所定位出的数据不在同一个 表内的情况。
所述的使用循环处理的方法是指使用同样的语句在已经定位数据所在的表 中进行同样的处理操作。
所述的使用临时表的方法是指如果需要对结果集进行进一步的加工处理 时,可将循环处理方法每次所产生的结果输入到同一临时表中,再对临时表的 数据进行进一步的加工处理。
本发明能够在中小型数据库上实现与大型数据库相当的超大数据量的处理能力。


附图为本发明一个简化实例的流程图。
具体实施例方式
参见附图,我们将以一简化实例来说明本发明的具体实施方式

步骤一,确定要处理的数据。要处理的数据必须包括指针对照表所需的指 定划分标识。如果按自动序列标识的固定间隔进行划分的表,且是执行插入操 作时,则不需要。
步骤二,定位数据所在的表。用指定划分标识通过在指针对照表里进行比 对来确定指定数据行所存储的表名。所得到的表可能是一个,也可能是多个, 如果是多个表,就需要循环进行处理。
步骤三,在数据所在的表中筛选出需要处理的数据行。如果是多个表,就 需要循环进行筛选。可将筛选出的结果存储于临时表中,以便后续处理。
步骤四,进行处理。如果是多个表,就需要循环进行处理。
权利要求
1、一种用动态表名优化超大数据量处理能力的方法,其特征在于对超大数据量分成多个表进行存储及处理,通过指针对照表来定位数据所在的表,以动态表名的方法实现程序处理不确定目标表的数据。
2、 根据权利要求1所述的对超大数据量分成多个表进行存储及处理,其特 征在于对超大数据量的划分至少可以有以下三种方式或其组合a、 按固定时间间隔进行划分,通常以日、周、月、年来划分。b、 按自动序列标识的固定间隔进行划分。 C、按某一列值进行划分。
3、 根据权利要求1所述的对超大数据量分成多个表进行存储及处理,其特 征在于存储所用多个表的命名规则,前部分是特征性命名部分,可适用软件 设计时所遵从的一般命名规则或特别约定的命名规则。后部分是序列性命名部 分,应为可与数据划分相匹配的一固定长度的数字型字符串或其他方式构成。后部分可根据应用习惯置前或置中。
4、 根据权利要求1所述的通过指针对照表来定位数据所在的表,其特征在 于可以是一个实际存在的表,也可以用一种相对简单的规则来替代实际存在 的表。
5、 根据权利要求1所述的通过指针对照表来定位数据所在的表,其特征在 于在对数据进行查询、插入、更新、删除处理时,可以用指定划分标识通过 在指针对照表里进行比对来确定指定数据行所存储的表名。如果是按自动序列 标识的固定间隔进行划分的,且是执行插入操作时,则需要有一种预处理机制 确定最后一个表名,即插入数据所存储的表名。
6、 根据权利要求1所述的以动态表名的方法实现程序处理不确定目标表的 数据,其特征在于程序中使用一变量表名,用动态执行语句或其他方式来替 换为实际的表名。
7、 根据权利要求1所述的以动态表名的方法实现程序处理不确定目标表的 数据,其特征在于如果目标结果集跨表存储,则使用同样的语句在已经定位 数据所在的表中进行同样的处理操作。
8、 根据权利要求1所述的以动态表名的方法实现程序处理不确定目标表的 数据,其特征在于可将循环处理方法每次所产生的结果输入到同一临时表中, 再对临时表的数据进行进一步的加工处理。
全文摘要
本发明为用动态表名优化超大数据量处理能力的方法。该方法的主要特征是将超大数据量分成多个表进行存储及处理,通过指针对照表来定位数据所在的表,以动态表名的方法实现程序处理不确定目标表的数据,达到优化超大数据量处理能力的目的。本发明能够在中小型数据库上实现与大型数据库相当的超大数据量的处理能力。
文档编号G06F17/30GK101388009SQ20071012160
公开日2009年3月18日 申请日期2007年9月11日 优先权日2007年9月11日
发明者董为卿, 董鹏卿 申请人:北京思软科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1