CN101739447B - 一种对临时表的管理方法及装置 - Google Patents
一种对临时表的管理方法及装置 Download PDFInfo
- Publication number
- CN101739447B CN101739447B CN2009102223291A CN200910222329A CN101739447B CN 101739447 B CN101739447 B CN 101739447B CN 2009102223291 A CN2009102223291 A CN 2009102223291A CN 200910222329 A CN200910222329 A CN 200910222329A CN 101739447 B CN101739447 B CN 101739447B
- Authority
- CN
- China
- Prior art keywords
- temporary table
- temporary
- database
- pond
- list structure
- 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.)
- Active
Links
Images
Abstract
本发明公开了一种对临时表的管理方法及装置,所述方法包括:设置表池,记录表池中各个临时表的表名称、状态及结构属性;接收来自数据库的临时表申请请求,从申请请求中获取发起申请的数据库类型以及所要求的表结构;如果表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲,则将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,将所述已发送的临时表的表状态修改为使用。应用本发明,各数据库不再需单独要维护自身所需的临时表,节约了各数据库自身的资源。由于临时表被统一管理,降低了临时表对数据库本身的依赖性,使得被统一管理的临时表对各个数据库都有很好的兼容性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种对临时表的管理方法及装置。
背景技术
目前,市面上存在多种数据库,如Oracle,结构化查询语言服务器(SQLServer),DB2等数据库,各种数据库所采用的数据类型是不一样的,每种数据库都有对应其特性的优化数据结构。
相应的,各种数据库所应用的软件都是基于各个数据库单独开发的,通常的模式是,先选定使用哪种数据库,再针对这个数据库的特性进行开发,从而得到应用于某个数据库的应用软件或程序。
可以理解,各种应用软件在使用的过程中都会用到临时表,以进行数据的交换和处理,因而,无论是哪种软件,都会用到临时表。
现有技术中,由于各种数据库的类型不一样,因而,基于各种数据库的软件所应用的临时表所采用的数据类型也是不一样的,通常,是各个数据库采用本数据库提供的工具单独维护本数据库所应用的临时表;而且,临时表的维护是在内存中,一旦数据库所在的服务器重新启动,则需要重新创建并维护各种所需要的临时表。
从临时表本身的角度看,其实各个数据库所维护管理临时表的结构基本相同,只是由于各数据库所支持的数据类型不同,因而维护管理的方式不同。
可见,在现有技术中,为了适应各个数据库所支持的数据类型,各个数据库都需要单独维护并管理本数据库所支持的临时表,浪费了各个数据库的资源,特别是,如果一个软件在一个数据库开发后,需要从一个数据库迁移到另一数据库,则需要更换临时表的管理工具,改变用户对临时表的操作管理方式,因而,几乎不能实现临时表在不同数据库之间的迁移操作,不能实现通用。
发明内容
本发明实施例的在于提供一种对临时表的管理方法及装置,以使临时表能在各种数据库之间通用,并为各数据库节省了对临时表的管理资源。
本发明实施例提供了一种对临时表的管理方法,包括:
设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;
接收来自数据库的临时表申请请求,从所述申请请求中获取发起申请的数据库类型以及所要求的表结构;
如果所述表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲,则将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
如果所述表池中不存在与所述申请请求中所要求的表结构一致的临时表,则按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中,再将该表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
其中,所述方法还包括:
接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
其中,所述方法还包括:
若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中删除该临时表,并且,从本地删除该临时表。
本发明实施例还提供了一种对临时表的管理方法,包括:
设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;
接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
其中,所述方法还包括:
若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中删除该临时表,并且,从本地删除该临时表。
本发明实施例还提供了一种对临时表的管理装置,包括:
设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;
申请接收模块,用于接收来自数据库的临时表申请请求,从所述申请请求中获取发起申请的数据库类型以及所要求的表结构;
对比模块,用于确定所述表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲时,通知分配模块;
分配模块,用于将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
创建模块,用于在所述表池中不存在与所述申请请求中所要求的表结构一致的临时表时,按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中,再通知分配模块。
其中,所述装置还包括:
释放接收模块,用于接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
其中,所述装置还包括:
回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从所述表池中删除该临时表,并且,从本地删除该临时表。
本发明实施例还提供了一种对临时表的管理装置,包括:
设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;
释放接收模块,接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
其中,所述装置还包括:回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从所述表池中删除该临时表,并且,从本地删除该临时表。
应用本发明实施例提供的对临时表的管理方法和装置,各数据库不再需要单独维护自身所需的临时表,从而节约了各数据库自身的资源。再有,由于临时表被统一管理,降低了临时表对数据库本身的依赖性,也不再需要更换临时表的管理工具,不需要改变用户对临时表的操作管理方式,解决了临时表在各种数据库之间迁移的问题,使得被统一管理的临时表对各个数据库都有很好的兼容性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种对临时表的管理方法流程图;
图2是根据本发明实施例的另一种对临时表的管理方法流程图;
图3是根据本发明实施例的回收流程图;
图4是根据本发明实施例的一种对临时表的管理装置结构示意图;
图5是根据本发明实施例的另一种对临时表的管理装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例所提供的技术方案的思路是,对临时表进行统一管理,各种类型的数据库在需要使用临时表时,只需在指定的服务器上调用其所需要的临时表即可,在使用完毕后,释放给指定的服务器,这样,各数据库不需再单独维护自身所需的临时表,从而节约了各数据库自身的资源。再有,由于临时表被统一管理,降低了临时表对数据库本身的依赖性,也不再需要更换临时表的管理工具,不需要改变用户对临时表的操作管理方式,解决了临时表在各种数据库之间迁移的问题,使得被统一管理的临时表对各个数据库都有很好的兼容性。
具体而言,指定的用于统一管理临时表的服务器可以对外提供两个接口,一个用于申请临时表,一个用于释放临时表。申请临时表是指向表池申请一张表,此时需要传进来要申请的临时表的表结构,服务器返回一个可用的与申请的表结构一样的表;释放临时表是指将之前申请的临时表释放,以表示使用临时表结束,将它归还表池。
下面结合附图对本发明再做详细说明。
参见图1,其是根据本发明实施例的一种对临时表的管理方法流程图,本实施例为数据库申请临时表,具体步骤包括:
步骤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,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从所述表池中删除该临时表,并且从服务器本地删除该临时表。
应用本发明实施例提供的对临时表的管理装置,各数据库不需再单独维护自身所需的临时表,从而节约了各数据库自身的资源。再有,由于临时表被统一管理,降低了临时表对数据库本身的依赖性,也不再需要更换临时表的管理工具,不需要改变用户对临时表的操作管理方式,解决了临时表在各种数据库之间迁移的问题,使得被统一管理的临时表对各个数据库都有很好的兼容性。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种对临时表的管理方法,其特征在于,包括:
设置表池,记录所述表池中各个临时表的表名称、状态及结构属性;所述临时表被指定的服务器统一管理,且所述临时表可以供各种类型的数据库在需要时使用;
接收来自数据库的临时表申请请求,从所述申请请求中获取发起申请的数据库类型以及所要求的表结构;
如果所述表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲,则将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用;
如果所述表池中不存在与所述申请请求中所要求的表结构一致的临时表,则按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中,再将该表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中删除该临时表,并且,从本地删除该临时表。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若在预设时间段内,被标记为空闲状态的临时表没有被调用过,则从所述表池中删除该临时表,并且,从本地删除该临时表。
6.一种对临时表的管理装置,其特征在于,包括:
设置记录模块,用于设置表池,记录所述表池中各个临时表的表名称、状态及结构属性,所述临时表被指定的服务器统一管理,且所述临时表可以供各种类型的数据库在需要时使用;
申请接收模块,用于接收来自数据库的临时表申请请求,从所述申请请求中获取发起申请的数据库类型以及所要求的表结构;
对比模块,用于确定所述表池中存在与所述申请请求中所要求的表结构一致的临时表,且该表的状态为空闲时,通知分配模块;
分配模块,用于将表池中该临时表的表名及表结构以所述发起申请的数据库所支持的数据类型发送给所述数据库,并且,将所述已发送的临时表的表状态修改为使用 ;
创建模块,用于在所述表池中不存在与所述申请请求中所要求的表结构一致的临时表时,按照所述申请请求所要求的表结构创建一个临时表,将所创建的临时表放入到表池中,再通知分配模块。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
释放接收模块,用于接收来自数据库的临时表释放请求,将所释放的临时表表结构所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从所述表池中删除该临时表,并且,从本地删除该临时表。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
释放接收模块,接收来自数据库的临时表释放请求,将所释放的临时表表结构这所对应的内容删除,标记释放时间,并将所释放临时表的状态标记为空闲,之后,将所释放的临时表放入表池中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
回收模块,用于确定在预设时间段内,被标记为空闲状态的临时表没有被调用过时,从所述表池中删除该临时表,并且,从本地删除该临时表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102223291A CN101739447B (zh) | 2009-11-16 | 2009-11-16 | 一种对临时表的管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102223291A CN101739447B (zh) | 2009-11-16 | 2009-11-16 | 一种对临时表的管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101739447A CN101739447A (zh) | 2010-06-16 |
CN101739447B true CN101739447B (zh) | 2012-11-28 |
Family
ID=42462932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102223291A Active CN101739447B (zh) | 2009-11-16 | 2009-11-16 | 一种对临时表的管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101739447B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10534790B2 (en) | 2016-10-20 | 2020-01-14 | International Business Machines Corporation | Dynamic and predictive global temporary tables |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000031635A1 (en) * | 1998-11-25 | 2000-06-02 | Computer Associates Think, Inc. | Method and apparatus for concurrent dbms table operations |
CN1945579A (zh) * | 2006-10-28 | 2007-04-11 | 辽河石油勘探局 | 应用PL/SQL触发器实现Oracle数据库表间数据同步技术 |
CN101178724A (zh) * | 2007-11-28 | 2008-05-14 | 金蝶软件(中国)有限公司 | 临时表管理方法 |
-
2009
- 2009-11-16 CN CN2009102223291A patent/CN101739447B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000031635A1 (en) * | 1998-11-25 | 2000-06-02 | Computer Associates Think, Inc. | Method and apparatus for concurrent dbms table operations |
CN1945579A (zh) * | 2006-10-28 | 2007-04-11 | 辽河石油勘探局 | 应用PL/SQL触发器实现Oracle数据库表间数据同步技术 |
CN101178724A (zh) * | 2007-11-28 | 2008-05-14 | 金蝶软件(中国)有限公司 | 临时表管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101739447A (zh) | 2010-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111027921B (zh) | 一种业务处理方法、装置及电子设备和存储介质 | |
CN102110121A (zh) | 一种数据处理方法及其系统 | |
CN104965879A (zh) | 修改数据表的表结构的方法及装置 | |
CN102393889A (zh) | 一种权限配置管理系统 | |
US20200065313A1 (en) | Extensible content object metadata | |
CN104202383A (zh) | 一种分布式集群环境下集中配置分发管理的方法 | |
CN102726002B (zh) | 数据配置及其回退方法和设备 | |
CN108156030B (zh) | 一种配置策略同步的方法及装置 | |
CN102202087A (zh) | 一种标识存储设备的方法及系统 | |
CN105608126A (zh) | 一种建立海量数据库二级索引的方法和装置 | |
KR20140138712A (ko) | 로컬 및 원격 데이터 동기화 기법 | |
CN103036855A (zh) | 一种权限管理的实现设备和方法 | |
CN104503751B (zh) | 基于soa的数据源切换方法和基于soa的数据源切换系统 | |
CN109597764A (zh) | 一种目录配额的测试方法及相关装置 | |
EP2077508A1 (en) | Method and system for integrating multiple authoring applications in a collaborative environment | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
CN106598477A (zh) | 利用内存数据库的数据管理方法及其装置 | |
CN105446824B (zh) | 表增量获取方法及异地数据备份方法 | |
CN105302602A (zh) | 一种云平台应用程序平滑在线升级方法 | |
CN101739447B (zh) | 一种对临时表的管理方法及装置 | |
CN103888545A (zh) | 一种分布式系统中全局型数据的处理方法和装置 | |
CN105550349A (zh) | 持久层装置及数据库操作方法 | |
CN103176782A (zh) | 数据库访问的方法和装置 | |
US8694559B2 (en) | Using database content for multiple business data systems connected to one database | |
CN103809947A (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 |