一种对临时表的管理方法及装置的制作方法

文档序号:6583706阅读:131来源:国知局
专利名称:一种对临时表的管理方法及装置的制作方法
技术领域
本发明涉及数据处理技术领域,特别涉及一种对临时表的管理方法及装置。
背景技术
目前,市面上存在多种数据库,如Oracle,结构化查询语言服务器(SQLServer), DB2等数据库,各种数据库所采用的数据类型是不一样的,每种数据库都有对应其特性的优 化数据结构。 相应的,各种数据库所应用的软件都是基于各个数据库单独开发的,通常的模式 是,先选定使用哪种数据库,再针对这个数据库的特性进行开发,从而得到应用于某个数据 库的应用软件或程序。 可以理解,各种应用软件在使用的过程中都会用到临时表,以进行数据的交换和 处理,因而,无论是哪种软件,都会用到临时表。 现有技术中,由于各种数据库的类型不一样,因而,基于各种数据库的软件所应用 的临时表所采用的数据类型也是不一样的,通常,是各个数据库采用本数据库提供的工具 单独维护本数据库所应用的临时表;而且,临时表的维护是在内存中,一旦数据库所在的服 务器重新启动,则需要重新创建并维护各种所需要的临时表。 从临时表本身的角度看,其实各个数据库所维护管理临时表的结构基本相同,只 是由于各数据库所支持的数据类型不同,因而维护管理的方式不同。 可见,在现有技术中,为了适应各个数据库所支持的数据类型,各个数据库都需要 单独维护并管理本数据库所支持的临时表,浪费了各个数据库的资源,特别是,如果一个软 件在一个数据库开发后,需要从一个数据库迁移到另一数据库,则需要更换临时表的管理 工具,改变用户对临时表的操作管理方式,因而,几乎不能实现临时表在不同数据库之间的 迁移操作,不能实现通用。

发明内容
本发明实施例的在于提供一种对临时表的管理方法及装置,以使临时表能在各种
数据库之间通用,并为各数据库节省了对临时表的管理资源。 本发明实施例提供了一种对临时表的管理方法,包括 设置表池,记录所述表池中各个临时表的表名称、状态及结构属性; 接收来自数据库的临时表申请请求,从所述申请请求中获取发起申请的数据库类
型以及所要求的表结构; 如果所述表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的 状态为空闲,则将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据 类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
其中,所述方法还包括 如果所述表池中不存在与所述申请请求中所要求的表结构一致的临时表,则按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中,再将该 表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且, 将所述已发送的临时表的表状态修改为使用。
其中,所述方法还包括 接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删 除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表 池中。 其中,所述方法还包括 若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中 删除该临时表,并且,从本地删除该临时表。 本发明实施例还提供了一种对临时表的管理方法,包括 设置表池,记录所述表池中各个临时表的表名称、状态及结构属性; 接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对应的内容删
除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
其中,所述方法还包括 若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中 删除该临时表,并且,从本地删除该临时表。
本发明实施例还提供了一种对临时表的管理装置,包括 设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构 属性; 申请接收模块,用于接收来自数据库的临时表申请请求,从所述申请请求中获取 发起申请的数据库类型以及所要求的表结构; 对比模块,用于确定所述表池中存在与所述申请请求中所要求的表结构一致的临 时表,且该表的状态为空闲时,通知分配模块; 分配模块,用于将表池中该临时表的表名及表结构以所述发起申请的数据库所支 持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
其中,所述装置还包括 创建模块,用于在所述表池中不存在与所述申请请求中所要求的表结构一致的临
时表时,按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表
池中,再通知分配模块。
其中,所述装置还包括 释放接收模块,用于接收来自数据库的临时表释放请求,将所释放的临时表表结
构所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释
放的临时表放入表池中。
其中,所述装置还包括 回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过 时,从所述表池中删除该临时表,并且,从本地删除该临时表。
本发明实施例还提供了一种对临时表的管理装置,包括
设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构 属性; 释放接收模块,接收来自数据库的临时表释放请求,将所释放的临时表表结构这 所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放 的临时表放入表池中。 其中,所述装置还包括回收模块,用于确定在预设时间段内,被标记为空闲状态 的临时表没有被调用过时,从所述表池中删除该临时表,并且,从本地删除该临时表。
应用本发明实施例提供的对临时表的管理方法和装置,各数据库不再需要单独维 护自身所需的临时表,从而节约了各数据库自身的资源。再有,由于临时表被统一管理,降 低了临时表对数据库本身的依赖性,也不再需要更换临时表的管理工具,不需要改变用户 对临时表的操作管理方式,解决了临时表在各种数据库之间迁移的问题,使得被统一管理 的临时表对各个数据库都有很好的兼容性。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。
图1是根据本发明实施例的一种对临时表的管理方法流程图;
图2是根据本发明实施例的另一种对临时表的管理方法流程图;
图3是根据本发明实施例的回收流程图; 图4是根据本发明实施例的一种对临时表的管理装置结构示意图;
图5是根据本发明实施例的另一种对临时表的管理装置结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。 本发明实施例所提供的技术方案的思路是,对临时表进行统一管理,各种类型的 数据库在需要使用临时表时,只需在指定的服务器上调用其所需要的临时表即可,在使用 完毕后,释放给指定的服务器,这样,各数据库不需再单独维护自身所需的临时表,从而节 约了各数据库自身的资源。再有,由于临时表被统一管理,降低了临时表对数据库本身的依 赖性,也不再需要更换临时表的管理工具,不需要改变用户对临时表的操作管理方式,解决 了临时表在各种数据库之间迁移的问题,使得被统一管理的临时表对各个数据库都有很好 的兼容性。 具体而言,指定的用于统一管理临时表的服务器可以对外提供两个接口,一个用 于申请临时表,一个用于释放临时表。申请临时表是指向表池申请一张表,此时需要传进来 要申请的临时表的表结构,服务器返回一个可用的与申请的表结构一样的表;释放临时表是指将之前申请的临时表释放,以表示使用临时表结束,将它归还表池。
下面结合附图对本发明再做详细说明。 参见图l,其是根据本发明实施例的一种对临时表的管理方法流程图,本实施例为 数据库申请临时表,具体步骤包括 步骤101,设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;
步骤102,服务器接收来自数据库的临时表申请请求,对该申请请求进行解析,从
该申请请求的参数中获取发起申请的数据库类型以及所要求的表结构; 步骤103,判断所述表池中是否存在与所述申请请求中所要求的表结构一致的临
时表,且该表的状态为空闲,若是,则执行步骤106,否则执行步骤104 ; 步骤104,服务器按照所述申请请求所要求的表结构创建一个临时表; 步骤105,服务器将所创建的临时表放入到表池中,并且,记录该创建的临时表的
表名、状态及结构属性; 步骤106,将从表池获得的与申请请求中的要求一致的临时表的表名及表结构以
所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时
表的表状态修改为使用。 至此,完成了临时表的申请管理。 参见图2,其是根据本发明实施例的另一种对临时表的管理方法流程图,本实施例
为数据库释放临时表,具体步骤包括 步骤201,接收来自数据库的临时表释放请求; 步骤202,将所释放的临时表表结构所对应的内容删除; 步骤203,标记释放时间; 步骤204,将所释放临时表的状态标记为空闲;
步骤205,将所释放的临时表放入表池中。
至此,完成了临时表的释放管理。 需要说明的是,在上述释放管理流程中,步骤202-204之间没有严格的先后顺序, 也即,上述步骤202-204可以同时执行,也可以先执行其中的任一步,再执行剩下两步中的 任一步,最后执行剩下的任意一步。 参见图3,其是根据本发明实施例的回收流程,具体包括 步骤301,判断在预设时间段内,被标记为空闲状态的临时表没有被调用过,若是, 则退出本流程,否则执行步骤302 ; 上述预设时间段可根据实际需要确定,可长可短。
步骤302,从所述表池中删除该临时表;
步骤303,从服务器本地删除该临时表。 也就是说,如果在规定时间内某个临时表没有再被重用,则系统认为不再需要临 时表,则删除该临时表,以免浪费资源。
至此,完成了临时表的回收管理。 在本发明实施例中,临时表不仅仅在内存中维护,还保存在服务器本地, 一旦服务 器重新启动,只需将本地保存的临时表加载到内存即可,避免了因服务器非正常关闭重新 启动而造成的数据丢失,知所以在内存中也维护,是为了加快各数据库的调用释放速度。
需要说明的是,上述图2、3所示的释放流程和回收流程可以不依赖于图1所示的 申请流程单独存在。 应用本发明实施例提供的对临时表的管理方法,各数据库不需再单独维护自身所 需的临时表,从而节约了各数据库自身的资源。再有,由于临时表被统一管理,降低了临时 表对数据库本身的依赖性,也不再需要更换临时表的管理工具,不需要改变用户对临时表 的操作管理方式,解决了临时表在各种数据库之间迁移的问题,使得被统一管理的临时表 对各个数据库都有很好的兼容性。 本发明实施例还提供了一种对临时表的管理装置,参见图4,具体包括 设置记录模块401,用于设置表池,记录所述表池中各个临时表的表名称、状态及
结构属性; 申请接收模块402 ,用于接收来自数据库的临时表申请请求,从所述申请请求中获 取发起申请的数据库类型以及所要求的表结构; 对比模块403,用于确定所述表池中存在与所述申请请求中所要求的表结构一致 的临时表,且该表的状态为空闲时,通知分配模块; 分配模块404,用于将表池中该临时表的表名及表结构以所述发起申请的数据库 所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
上述装置还可以包括 创建模块405,用于在所述表池中不存在与所述申请请求中所要求的表结构一致 的临时表时,按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入 到表池中,再通知分配模块。
上述装置还可以包括 释放接收模块406 ,用于接收来自数据库的临时表释放请求,将所释放的临时表表 结构这所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将 所释放的临时表放入表池中。
上述装置还可以包括 回收模块407,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用
过时,从所述表池中删除该临时表,并且从服务器本地删除该临时表。
本发明实施例还提供了一种对临时表的管理装置,参见图5,具体包括 设置记录模块501,用于设置表池,记录所述表池中各个临时表的表名称、状态及
结构属性; 释放接收模块502,接收来自数据库的临时表释放请求,将所释放的临时表表结构
这所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释
放的临时表放入表池中。 上述装置还可以包括 回收模块503,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用 过时,从所述表池中删除该临时表,并且从服务器本地删除该临时表。 应用本发明实施例提供的对临时表的管理装置,各数据库不需再单独维护自身所 需的临时表,从而节约了各数据库自身的资源。再有,由于临时表被统一管理,降低了临时 表对数据库本身的依赖性,也不再需要更换临时表的管理工具,不需要改变用户对临时表的操作管理方式,解决了临时表在各种数据库之间迁移的问题,使得被统一管理的临时表 对各个数据库都有很好的兼容性。 对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。 需要说明的是,在本文中,诸如术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除 在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中, 这里所称得的存储介质,如R0M/RAM、磁碟、光盘等。 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
权利要求
一种对临时表的管理方法,其特征在于,包括设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;接收来自数据库的临时表申请请求,从所述申请请求中获取发起申请的数据库类型以及所要求的表结构;如果所述表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲,则将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
2. 根据权利要求1所述的方法,其特征在于,所述方法还包括如果所述表池中不存在与所述申请请求中所要求的表结构一致的临时表,则按照所述 申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中,再将该表的 表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所 述已发送的临时表的表状态修改为使用。
3. 根据权利要求1或2所述的方法,其特征在于,所述方法还包括接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删除,标 记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
4. 根据权利要求3所述的方法,其特征在于,所述方法还包括若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中删除 该临时表,并且,从本地删除该临时表。
5. —种对临时表的管理方法,其特征在于,包括设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对应的内容删除, 标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
6. 根据权利要求5所述的方法,其特征在于,所述方法还包括若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中删除 该临时表,并且,从本地删除该临时表。
7. —种对临时表的管理装置,其特征在于,包括设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;申请接收模块,用于接收来自数据库的临时表申请请求,从所述申请请求中获取发起 申请的数据库类型以及所要求的表结构;对比模块,用于确定所述表池中存在与所述申请请求中所要求的表结构一致的临时 表,且该表的状态为空闲时,通知分配模块;分配模块,用于将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的 数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
8. 根据权利要求7所述的装置,其特征在于,所述装置还包括创建模块,用于在所述表池中不存在与所述申请请求中所要求的表结构一致的临时表 时,按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中, 再通知分配模块。
9. 根据权利要求7或8所述的装置,其特征在于,所述装置还包括 释放接收模块,用于接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的 临时表放入表池中。
10. 根据权利要求9所述的装置,其特征在于,所述装置还包括回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从 所述表池中删除该临时表,并且,从本地删除该临时表。
11. 一种对临时表的管理装置,其特征在于,包括设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;释放接收模块,接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对 应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临 时表放入表池中。
12. 根据权利要求11所述的装置,其特征在于,所述装置还包括回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从 所述表池中删除该临时表,并且,从本地删除该临时表。
全文摘要
本发明公开了一种对临时表的管理方法及装置,所述方法包括设置表池,记录表池中各个临时表的表名称、状态及结构属性;接收来自数据库的临时表申请请求,从申请请求中获取发起申请的数据库类型以及所要求的表结构;如果表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲,则将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,将所述已发送的临时表的表状态修改为使用。应用本发明,各数据库不再需单独要维护自身所需的临时表,节约了各数据库自身的资源。由于临时表被统一管理,降低了临时表对数据库本身的依赖性,使得被统一管理的临时表对各个数据库都有很好的兼容性。
文档编号G06F17/30GK101739447SQ200910222329
公开日2010年6月16日 申请日期2009年11月16日 优先权日2009年11月16日
发明者邓展鸿 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1