[发明专利]临时表管理方法有效
申请号: | 200710168178.7 | 申请日: | 2007-11-28 |
公开(公告)号: | CN101178724A | 公开(公告)日: | 2008-05-14 |
发明(设计)人: | 彭璐;潘国林 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 | 代理人: | 胡海国;王艳春 |
地址: | 518027广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 临时 管理 方法 | ||
技术领域
本发明涉及电数字数据处理领域,特别涉及临时表管理方法。
背景技术
在应用程序中,往往会产生大量的中间数据,这些数据需要保存在数据库中,以供后继处理过程或者其它程序使用,一旦这些中间数据不再需要时,应该从数据库中删除,以释放所占的资源。保存中间数据的数据表称为临时表。应用程序一般使用数据库的临时表管理机制来管理临时表,当临时表中的数据不再被使用时则将该表从数据库中删除,或者关闭数据库连接让数据库自动删除临时表。
目前的数据库产品都有自己管理临时表的机制,如在SQL SERVER中临时表分为局部临时表和全局临时表,局部临时表与每个连接会话相关,仅在创建该临时表的连接会话中可见,当会话关闭时会被删除;全局临时表可以被所有连接会话访问,但当该临时表不被任何一个连接会话使用时数据库会删除该全局临时表。
应用程序的某一个功能使用临时表有个特点:每次要保存的中间数据是相似的,所以每次创建的临时表结构也相同,从程序上来说,每次创建临时表的表结构都是相同的,只是表名有可能不同。通过程序请求数据库来删除临时表或者让数据库自动删除临时表有个缺点:删除和创建表/临时表需要耗费一定的资源,并且在这一过程中会锁定数据库的系统表,降低数据库性能,特别是在频繁创建/删除临时表的情况下很可能造成系统死锁。
发明内容
本发明目的在于提出一种可以被整个应用反复使用的可重用临时表。
本发明提供临时表管理方法,包括:创建可重用临时表的步骤;使用可重用临时表的步骤;删除和/或释放可重用临时表的步骤。
上述创建可重用临时表的步骤包括:应用程序向系统传递创建表语句,请求创建可重用临时表的步骤;系统根据创建表语句创建可重用临时表的步骤。
上述删除可重用临时表的步骤包括:应用程序向系统传递删除表语句,请求删除指定可重用临时表的步骤;系统根据删除表语句删除指定可重用临时表的步骤。
优选地,上述临时表管理方法还包括:在应用程序初始化时,系统删除应用程序创建的可重用临时表的步骤。
优选地,上述临时表管理方法还包括:利用表名识别可重用临时表。
上述表名包括前缀、外部程序标识和随机标识,前缀、外部程序标识和随机标识三者结合使表名互不相同。同一个应用程序生成的可重用临时表的前缀相同;外部程序标识是根据应用程序所在机器地址、硬件和/或系统信息生成;随机标识是由外部程序标识、可重用临时表创建时间和/或随机数组合运算得到。
上述创建可重用临时表的步骤包括:系统根据应用程序的请求生成表名的步骤;系统用表名替换创建表语句中的表名,生成新的创建表语句的步骤;系统执行新的创建表语句,创建可重用临时表的步骤。
优选地,上述系统预先创建至少一可重用临时表,并用临时表池管理至少一可重用临时表。
上述创建可重用临时表步骤包括:应用程序向系统传递创建可重用临时表的语句的步骤;系统接收到创建语句后,在临时表池中查找相应的可重用临时表的步骤;找到相应的可重用临时表,则返回可重用临时表的表名的步骤;或未找到相应的可重用临时表,则系统生成不重复的表名,用表名创建新的可重用临时表并由临时表池管理,返回新的可重用临时表表名的步骤。
上述释放可重用临时表的步骤包括:应用程序指明要释放的可重用临时表的表名,向系统请求释放可重用临时表的步骤;系统找出指定的可重用临时表,将指定可重用临时表中的数据清空的步骤;临时表池管理指定可重用临时表,使可重用临时表可供应用程序使用的步骤。
本发明提供的可以被整个应用重复使用的临时表,称为可重用临时表。无论应用程序是否有未断开的数据库连接,只要应用程序不请求删除该全局临时表则它们就一直会处于有效状态。应用程序可以决定这些全局临时表是否可以被删除,也可以交由系统来决定。大型数据库应用程序中不可避免地要产生中间数据,可重用临时表即可以保存这些中间数据并在造当的时候删除这些数据,又实现了在整个应用程序中共享这些中间数据。
本发明同时还实现了对可重用临时表表名的管理,在普通系统中,如果一个应用程序中有几百甚至几万个临时表,如何指定这些表的名称将是个很大的问题,由于数量多,并且由不同开发人员进行编码,很可能就造成表名冲突,应用程序不能正常进行。本发明提供的可重用临时表命名规则及可重用临时表管理机制很好地解决了这个问题。
本发明通过普通表模拟临时表,并通过表名约束实现可重用临时表的重复使用,可避免在应用程序中频繁的创建/删除数据表,提高数据库的使用性能,减少数据库死锁的发生几率。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710168178.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:传动装置
- 下一篇:一种手写屏错误纠正的方法、系统及装置