数据存储方法和装置的制作方法

文档序号:6465886阅读:144来源:国知局
专利名称:数据存储方法和装置的制作方法
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据存储方法和装置。
技术背景ERP ( Enterprise Resource Planning,企业资源计划)是指建立在信息技术 基础上,以系统化的管理思想,为企业决策层及员工^是供决策运行手段的管理 平台。通常ERP软件的数据通过数据库的方式以表的形式存储,表是用于统 一管理相关数据的集合,相当于一个数据存储容器。现有技术中,在通过表存 储数据时,如果同一时间有多个用户使用表中的相同数据,则会因为内存占用 过多而导致系统瘫痪,为了防止由于系统性能导致的问题,需要通过锁的方式 来保证数据的一致性,即当表中的某一数据有用户在使用时,则其它用户不能 再使用该数据,但是采用锁的方式进行数据存储,当并发数据^f艮多时,就会出 现大量用户排队的现象,导致系统性能大幅下降。发明人在对现有ERP系统中采用表的方式存储数据的研究过程中发现, 为了防止出现大量并发用户从而降低系统性能,通常采用加强硬件设备性能的 方式,例如加大石更盘容量,才是升内存、CPU ( Central Processing Unit,中央处 理器)的性能等,但是随着客户量和数据量的不断增加,这种方式将使用户因 为不断增加硬件设备的投入,而导致成本负担的加重;另外,如果采用定时删 除历史数据的方式,虽然緩解了当前的系统压力,但是将导致用户无法对历史 数据进行查询和处理;而如果限制并发用户的数量,将使系统的应用范围受到 限制,难以满足大客户的需求。发明内容本发明的目的在于提供一种数据存储方法和装置,以解决现有技术中在并 发用户量大时录入数据导致的系统成本增加,以及性能下降的问题。为解决上述技术问题,本发明提供如下技术方案一种数据存储方法,包括确定关键表中用于创建緩存表的维度,所述维度包含至少一个维度成员;为所述维度的每个维度成员创建相应的緩存表,所述緩存表的结构与所述 关键表一致;将接收到的对应每个维度成员的数据存储至为所述维度成员创建的緩存表;将所述緩存表中的数据写入所述关键表中的对应位置。 所述维度包括单据类型、用户类型或客户端类型中的至少一种。所述确定关键表中用于创建緩存表的维度具体为确定关键表中用于创建 緩存表的主维度和至少一个子维度;所述为维度的每个维度成员创建相应的緩存表具体为 为所述主维度的每个主维度成员创建相应的緩存表;将所述主维度成员的緩存表作为关键表,为所述子维度的每个子维度成员 创建相应的緩存表。括、';々,又、、 i 、 ;,又、 、将所述对应每个维度成员的数据的存储路由从指向所述关键表修改为指向所述数据对应的緩存表;按照所述修改后的存储路由将所述数据存储至对应的緩存表。 所述将緩存表中的数据写入所述关4建表中的对应位置包括 按照预先设置的时间间隔将所述緩存表中的数据写入所述关键表中的对应位置;或按照预先设置的手动提交模式将所述緩存表中的数据写入所述关键表中 的对应位置。所述将缓存表中的数据写入所述关4建表中的对应位置后还包括删除所述 緩存表中的数据。 还包括当重新确定关键表中用于创建緩存表的维度时,删除已经创建的所述緩存表。一种数据存储装置,包括确定单元,用于确定关4定表中用于创建緩存表的维度,所述维度包含至少 一个维度成员;创建单元,用于为所述维度的每个维度成员创建相应的緩存表,所述緩存 表的结构与所述关键表一致;存储单元,用于将接收到的对应每个维度成员的数据存储至为所述维度成 员创建的緩存表;写入单元,用于将所述緩存表中的数据写入所述关键表中的对应位置。 所述存储单元包括修改路由单元,用于将所述对应每个维度成员的数据的存储路由从指向所 述关键表修改为指向所述数据对应的缓存表;緩存表。所述写入单元包括定时写入单元,用于按照预先设置的时间间隔将所述緩存表中的数据写入 所述关4建表中的对应位置;或手动写入单元,用于按照预先设置的手动提交模式将所述緩存表中的数据 写入所述关键表中的对应位置。还包括删除单元,用于将緩存表中的数据写入所述关键表中的对应位置后,删除 所述緩存表中的数据,或当重新确定关键表中用于创建緩存表的维度时,删除 已经创建的所述緩存表。由以上本发明提供的技术方案可见,本发明中确定关键表中用于创建緩存 表的维度,为该维度的每个维度成员创建相应的与关键表结构一致的缓存表, 将接收到的对应每个维度成员的数据存储至为维度成员创建的緩存表,将緩存表中的数据写入所述关键表中的对应位置。应用本发明进行数据存储时,由于 对包含多个维度的关键表进行拆分,通过建立多个緩存表緩解了并发用户量大时对系统性能的影响;并且采用緩存表分类存储数据,对原有系统的改动较小,提高了系统的易用性,降低了维护成本。


图1为本发明数据存储方法的第一实施例流程图; 图2为本发明数据存储方法的第二实施例流程图; 图3为本发明数据存储方法的第三实施例流程图; 图4为本发明数据存储装置的第一实施例框图; 图5为本发明数据存储装置的第二实施例框图; 图6为本发明数据存储装置的第三实施例框图。
具体实施方式
本发明的核心是提供了一种数据存储方法和装置,确定关键表中用于创建 緩存表的维度,所述维度包含至少一个维度成员,为所述维度的每个维度成员 创建相应的緩存表,所述緩存表的结构与所述关键表一致,将接收到的对应每 个维度成员的数据存储至为所述维度成员创建的緩存表,将所述緩存表中的数 据写入所述关键表中的对应位置。为了使本技术领域的人员更好地理解本发明方案,并使本发明的上述目 的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作 进一步详细的说明。本发明数据存储方法的第一实施例流程如图1所示 步骤101:确定关键表中用于创建緩存表的维度。其中,关键表的维度可以为单据类型、用户类型或客户端类型中的至少一种。步骤102:为该维度的每个维度成员创建相应的与关键表结构一致的緩存表。具体的,当确定关4定表中用于创建緩存表的主维度和至少 一个子维度时, 为所述主维度的每个主维度成员创建相应的緩存表,并将所述主维度成员的緩 存表作为过渡关键表,为所述子维度的每个子维度成员创建相应的緩存表。步骤103:将接收到的对应每个维度成员的数据存储至为该维度成员创建的緩存表。具体的,将所述对应每个维度成员的数据的存储路由从指向所述关键表修 改为指向所述数据对应的緩存表,按照所述修改后的存储路由将所述数据存储 至对应的緩存表。步骤104:将緩存表中的数据写入关键表中的对应位置。其中,可以按照预先设置的时间间隔将所述緩存表中的数据写入所述关键 表中的对应位置,或者按照预先设置的手动提交模式将所述緩存表中的数据写 入所述关键表中的对应位置。本发明数据存储方法的第二实施例如图2所示,该实施例示出了数据存储 的详细过程,其中用于创建緩存表的维度仅为根据关键表确定的一个主维度, 即仅对关键表进行一次划分步骤201:确定关键表中用于创建緩存表的一个主维度。在确定关键表的主维度时,可以从所有维度中任选一个作为主维度,也可 以根据需要,将影响系统性能最大的维度作为主维度。每个维度均包含至少一个维度成员,以维度为用户类型为例,用户类型的 每个维度成员即为用户l、用户2......用户N(N为整数)。步骤202:为主维度的每个主维度成员创建相应的与关4建表结构一致的緩 存表。仍然以维度为用户类型为例,假设用户类型包含N个用户,则为每个用 户分别创建一个用于存储该用户数据的緩存表,该緩存表的结构与关键表的结 构一致,以便后续能够将緩存表中的数据方便地写入关键表中。步骤203:将对应每个主维度成员的数据的存储路由从指向关键表修改为 指向该数据对应的緩存表。当用关键表存储数据时,接收到的每个数据的存储路由均指向关键表,由于为每个用户创建了緩存表,因此将每个用户的数据的存储路由从指向关键表 修改为指向该用户的緩存表。由于仅仅修改数据的存储路由即可将数据存储进相应的緩存表,因此本发 明在对现有系统改动较小的基础上,就能够提高系统的性能。步骤204:将接收到的数据按照修改后的存储路由存储至对应的緩存表。假设接收到了用户1的数据,则按照修改后的该数据的存储路由,将该数 据存储至用户1的緩存表。步骤205:按照预先设置的时间间隔将所有緩存表中的数据写入关键表中 的对应位置。由于緩存表是为了缓解系统性能而创建的临时存储表,因此还需要将緩存 表中的数据同步到关键表中,以便用户能够在关键表上进行数据查询和业务处 理等操作。在同步緩存表中的数据至关键表时,可以预先设置定时器,按照一定的时 间间隔进行计时,在一个时间周期结束时自动将緩存表中的数据写入关键表 中。例如,预设的同步时间可以设置在夜间进行,此时系统处于空闲状态,便 于将緩存表中的数据写入关键表。当然,也可以根据实际需要,为不同维度成 员的緩存表中的数据设置不同的同步时间,本发明不做限制。步骤206:删除緩存表中的数据。由于緩存表仅为临时存储表,因此当緩存表中的数据同步到关键表中以 后,为了节约系统的内存空间,可以将緩存表中的数据删除。步骤207:判断是否需要重新确定关键表中用于创建緩存表的维度,若是, 则执行步骤208;否则,结束当前流程。步骤208:删除已经建立的緩存表,返回步骤201。由于緩存表仅为临时存储表,因此当需要重新确定关键表中用于创建緩存 表的维度时,即需要按照新确定的维度创建新的緩存表时,为了节约系统的内 存空间,可以将已经建立的緩存表删除。本发明数据存储方法的第三实施例如图3所示,该实施例示出了数据存储 的详细过程,其中用于创建缓存表的维度为根据关键表确定的一个主维度和一个子维度,即仅对关键表进行二次划分步骤301:确定关键表中用于创建緩存表的一个主维度和一个子维度。在确定了主维度后,按照主维度的主维度成员创建緩存表进行数据存储可 以緩解系统的性能问题,但是,为了进一步緩解系统的性能问题,可以在主维 度成员的基础上确定一个子维度。步骤302:为主维度的每个主维度成员创建相应的緩存表。 步骤303:将主维度成员的緩存表作为过渡关键表,为子维度的每个子维 度成员创建相应的緩存表。在主维度成员的基础上确定一个子维度,就是对每个主维度成员对应的緩 存表进行进一步拆分,在为每个主维度成员建立的緩存表的基础上,进一步建 立子维度成员的緩存表。步骤304:将对应每个子维度成员的数据的存储路由从指向关键表修改为 指向该数据对应的緩存表。步骤305:按照修改后的存储路由将数据存储子对应的緩存表。步骤306:按照预先设置的手动提交模式将所有缓存表中的数据写入关键 表中的对应位置。为了方便不同用户的需要,可以按照预先设置的手动提交模式,使用户在 不同时间均可按照该模式将缓存表中的数据写入关键表中。步骤307:删除緩存表中的数据,结束当前流程。需要说明的是,根据实际存储的需要和系统性能的要求,可以进一步确定 子维度的子维度,即本发明实施例不对维度的划分次数进行限制,上述对关键 表确定一个主维度和一个子维度仅是为了示例方便,实际上可以对确定的子维 度进行多次划分。下面以维度是单据类型为例,对本发明实施例中数据存储过程进行描述对应维度为单据类型,假设单据类型的维度成员包括外购入库单据、销 售出库单据、产品入库单据、调拨类型单据;则对应上述四个维度成员,分别 创建外购入库单据緩存表、销售出库单据緩存表、产品入库单据緩存表、调拨 类型单据緩存表;当接收到输入数据后,判断该数据属于哪个维度成员的数据,假设该数据为外购入库数据,初始该外购入库数据的存储路由为关键表中的某 个位置,此时修改外购入库数据的存储路由执行外购入库单据緩存表,按照该 路由可以将外购入库数据存储到外购入库单据緩存表中的对应位置,其它维度 成员的数据也按照上述方式存储到对应的緩存表中。为了将各个緩存表中的数据写入关键表,预先设置了緩存表数据同步的时 间,例如,设置所有数据緩存表中的数据在每天夜间12点进行同步,因为此 时系统处于空闲状态,在同步时可以按照创建缓存表时的顺序,将外购入库单 据緩存表、销售出库单据緩存表、产品入库单据緩存表、调拨类型单据緩存表 中的数据顺序写入关键表中的对应位置即可。当然,用户也可以手动将上述緩 存表中的数据写入关键表中。在上述主维度为单据类型时的维度成员外购入库单据、销售出库单据、产 品入库单据、调拨类型单据的基础上,对应任意维度成员,以外购入库单据为例,可以进一步确定其子维度,假设子维度为用户类型(包含N个用户),则 在外购入库单据基础上,进一步确定子维度成员为用户1、用户2至用户N, 则最终创建的緩存表为用户1的外购入库单据緩存表、用户2的外购入库单据 緩存表至用户N的外购入库单据緩存表。通过子维度成员的緩存表进行数据 存储的过程与前述通过主维度成员的緩存表进行数据存储的过程类似,在此不 再赘述。与本发明数据存储方法的实施例相对应,本发明还提供了数据存储装置的 实施例。本发明数据存储装置的第一实施例框图如图4所示,该装置包括确定单 元410、创建单元420、存储单元430和写入单元440。其中,确定单元410用于确定关键表中用于创建緩存表的维度,所述维度 包含至少一个维度成员;创建单元420用于为所述维度的每个维度成员创建相 应的緩存表,所述緩存表的结构与所述关键表一致;存储单元430用于将接收 到的对应每个维度成员的数据存储至为所述维度成员创建的缓存表;写入单元 440用于将所述緩存表中的数据写入所述关键表中的对应位置。本发明数据存储装置的第二实施例框图如图5所示,该装置包括确定单 元510、创建单元520、存储单元530和写入单元540。其中,确定单元510用于确定关键表中用于创建緩存表的维度,所述维度 包含至少一个维度成员;创建单元520用于为所述维度的每个维度成员创建相应的緩存表,所述緩 存表的结构与所述关4建表一致;存储单元530包括修改路由单元531,用于将所述对应每个维度成员的 数据的存储路由从指向所述关键表修改为指向所述数据对应的緩存表;存储数 据单元532,用于按照所述修改后的存储路由将所述数据存储至对应的緩存 表。写入单元540包括定时写入单元541,用于按照预先设置的时间间隔将 所述缓存表中的数据写入所述关键表中的对应位置;和/或手动写入单元542, 用于按照预先设置的手动提交模式将所述缓存表中的数据写入所述关键表中 的对应位置。需要说明的是,写入单元540可以只包含上述两个单元中的一个, 也可以两个都包含,附图5中示出了同时包含上述两个单元的情况。本发明数据存储装置的第三实施例框图如图6所示,该装置包括确定单 元610、创建单元620、存储单元630、写入单元640和删除单元650。其中,确定单元610用于确定关键表中用于创建緩存表的维度,所述维度 包含至少一个维度成员;创建单元620用于为所述维度的每个维度成员创建相 应的緩存表,所述緩存表的结构与所述关键表一致;存储单元630用于将接收 到的对应每个维度成员的数据存储至为所述维度成员创建的緩存表;写入单元 640用于将所述緩存表中的数据写入所述关键表中的对应位置;删除单元650 用于将緩存表中的数据写入所述关键表中的对应位置后,删除所述緩存表中的 数据,或当重新确定关4建表中用于创建緩存表的维度时,删除已经创建的所述 緩存表。通过以上的实施方式的描述可知,应用本发明进行数据存储时,由于对包 含多个维度的关键表进行拆分,通过建立多个緩存表緩解了并发用户量大时对 系统性能的影响;并且采用緩存表分类存储数据,对原有系统的改动较小,提 高了系统的易用性,降低了维护成本。本领域的技术人员可以清楚地了解到本 发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发 明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、 光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在 本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
权利要求
1、一种数据存储方法,其特征在于,包括确定关键表中用于创建缓存表的维度,所述维度包含至少一个维度成员;为所述维度的每个维度成员创建相应的缓存表,所述缓存表的结构与所述关键表一致;将接收到的对应每个维度成员的数据存储至为所述维度成员创建的缓存表;将所述缓存表中的数据写入所述关键表中的对应位置。
2、 根据权利要求1所述的方法,其特征在于,所述维度包括单据类型、 用户类型或客户端类型中的至少一种。
3、 根据权利要求1所述的方法,其特征在于,所述确定关键表中用于创 建緩存表的维度具体为确定关键表中用于创建緩存表的主维度和至少一个子维度;所述为维度的每个维度成员创建相应的緩存表具体为 为所述主维度的每个主维度成员创建相应的缓存表;将所述主维度成员的緩存表作为过渡关4定表,为所述子维度的每个子维度 成员创建相应的緩存表。
4、 根据权利要求1所述的方法,其特征在于,所述将对应每个维度成员 的数据存储至为所述维度成员创建的緩存表包括将所述对应每个维度成员的数据的存储路由从指向所述关键表修改为指 向所述数据对应的緩存表;按照所述修改后的存储路由将所述数据存储至对应的緩存表。
5、 根据权利要求1所述的方法,其特征在于,所述将緩存表中的数据写 入所述关键表中的对应位置包括按照预先设置的时间间隔将所述緩存表中的数据写入所述关键表中的对 应位置;或按照预先设置的手动提交模式将所述缓存表中的数据写入所述关键表中 的对应位置。
6、 根据权利要求1所述的方法,其特征在于,所述将緩存表中的数据写入所述关键表中的对应位置后还包括删除所述緩存表中的数据。
7、 根据权利要求1所述的方法,其特征在于,还包括当重新确定关键表中用于创建緩存表的维度时,删除已经创建的所述緩存表。
8、 一种凄t据存储装置,其特征在于,包括确定单元,用于确定关键表中用于创建緩存表的维度,所述维度包含至少 一个维度成员;创建单元,用于为所述维度的每个维度成员创建相应的緩存表,所述緩存 表的结构与所述关键表一致;存储单元,用于将接收到的对应每个维度成员的数据存储至为所述维度成 员创建的緩存表;写入单元,用于将所述緩存表中的数据写入所述关键表中的对应位置。
9、 根据权利要求8所述的装置,其特征在于,所述存储单元包括修改路由单元,用于将所述对应每个维度成员的数据的存储路由从指向所 述关键表修改为指向所述数据对应的緩存表;存储数据单元,用于按照所述修改后的存储路由将所述数据存储至对应的 緩存表。
10、 根据权利要求8所述的装置,其特征在于,所述写入单元包括 定时写入单元,用于按照预先设置的时间间隔将所述緩存表中的数据写入所述关键表中的对应位置;和/或手动写入单元,用于按照预先设置的手动提交模式将所述緩存表中的数据 写入所述关键表中的对应位置。
11、 根据权利要求8所述的装置,其特征在于,还包括删除单元,用于将緩存表中的数据写入所述关键表中的对应位置后,删除 所述緩存表中的数据,或当重新确定关键表中用于创建緩存表的维度时,删除 已经创建的所述緩存表。
全文摘要
本发明公开了一种数据存储方法和装置,所述方法包括确定关键表中用于创建缓存表的维度,所述维度包含至少一个维度成员;为所述维度的每个维度成员创建相应的缓存表,所述缓存表的结构与所述关键表一致;将接收到的对应每个维度成员的数据存储至为所述维度成员创建的缓存表;将所述缓存表中的数据写入所述关键表中的对应位置。本发明由于对包含多个维度的关键表进行拆分,通过建立多个缓存表缓解了并发用户量大时对系统性能的影响;并且采用缓存表分类存储数据,对原有系统的改动较小,提高了系统的易用性,降低了维护成本。
文档编号G06Q10/00GK101334795SQ20081013547
公开日2008年12月31日 申请日期2008年8月7日 优先权日2008年8月7日
发明者牟永乔 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1