临时表管理方法技术

技术编号:2830679 阅读:228 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种临时表管理方法,包括:创建可重用临时表的步骤;使用可重用临时表的步骤;删除和/或释放可重用临时表的步骤。本发明专利技术提供的可重用临时表无论应用程序是否有未断开的数据库连接,只要应用程序不请求删除该全局临时表则它们就一直会处于有效状态。本发明专利技术还实现了对可重用临时表表名的管理,避免表名冲突,应用程序不能正常进行的问题。本发明专利技术通过普通表模拟临时表,并通过表名约束实现可重用临时表的重复使用,可避免在应用程序中频繁的创建/删除数据表,提高数据库的使用性能,减少数据库死锁的发生几率。

【技术实现步骤摘要】

本专利技术涉及电数字数据处理领域,特别涉及。
技术介绍
在应用程序中,往往会产生大量的中间数据,这些数据需要保存在数据 库中,以供后继处理过程或者其它程序使用, 一旦这些中间数据不再需要时, 应该从数据库中删除,以释放所占的资源。保存中间数据的数据表称为临时 表。应用程序一般使用数据库的临时表管理机制来管理临时表,当临时表中 的数据不再被使用时则将该表从数据库中删除,或者关闭数据库连接让数据 库自动删除临时表。目前的数据库产品都有自己管理临时表的才几制,如在SQL SERVER中临时 表分为局部临时表和全局临时表,局部临时表与每个连接会话相关,仅在创 建该临时表的连接会话中可见,当会话关闭时会被删除;全局临时表可以被 所有连接会话访问,但当该临时表不被任何一个连接会话使用时数据库会删 除该全局临时表。应用程序的某一个功能使用临时表有个特点每次要保存的中间数据是 相似的,所以每次创建的临时表结构也相同,从程序上来说,每次创建临时 表的表结构都是相同的,只是表名有可能不同。通过程序请求数据库来删除 临时表或者让数据库自动删除临时表有个缺点删除和创建表/临时表需要耗 费一定的资源,并且在这一过程中会锁定数据库的系统表,降低数据库性能, 特别是在频繁创建/删除临时表的情况下很可能造成系统死锁。
技术实现思路
本专利技术目的在于提出一种可以被整个应用反复使用的可重用临时表。本专利技术提供,包括创建可重用临时表的步骤;使用可 重用临时表的步骤;删除和/或释放可重用临时表的步骤。上述创建可重用临时表的步骤包括应用程序向系统传递创建表语句,请 求创建可重用临时表的步骤;系统根据创建表语句创建可重用临时表的步骤。上述删除可重用临时表的步骤包括应用程序向系统传递删除表语句, 请求删除指定可重用临时表的步骤;系统根据删除表语句删除指定可重用临 时表的步骤。优选地,上述还包括在应用程序初始化时,系统删除 应用程序创建的可重用临时表的步骤。优选地,上述还包括利用表名识别可重用临时表。 上述表名包括前缀、外部程序标识和随机标识,前缀、外部程序标识和 随机标识三者结合使表名互不相同。同 一个应用程序生成的可重用临时表的 前缀相同;外部程序标识是根据应用程序所在机器地址、硬件和/或系统信息 生成;随机标识是由外部程序标识、可重用临时表创建时间和/或随机数组合 运算得到。上述创建可重用临时表的步骤包括系统^4居应用程序的请求生成表名 的步骤;系统用表名替换创建表语句中的表名,生成新的创建表语句的步骤; 系统执行新的创建表语句,创建可重用临时表的步骤。优选地,上述系统预先创建至少一可重用临时表,并用临时表池管理至 少一可重用临时表。上述创建可重用临时表步骤包括应用程序向系统传递创建可重用临时 表的语句的步骤;系统接收到创建语句后,在临时表池中查找相应的可重用 临时表的步骤;找到相应的可重用临时表,则返回可重用临时表的表名的步 骤;或未找到相应的可重用临时表,则系统生成不重复的表名,用表名创建 新的可重用临时表并由临时表池管理,返回新的可重用临时表表名的步骤。上述释放可重用临时表的步骤包括应用程序指明要释力文的可重用临时 表的表名,向系统请求释放可重用临时表的步骤;系统找出指定的可重用临 时表,将指定可重用临时表中的数据清空的步骤;临时表池管理指定可重用 临时表,使可重用临时表可供应用程序使用的步骤。本专利技术提供的可以被整个应用重复使用的临时表,称为可重用临时表。 无论应用程序是否有未断开的数据库连接,只要应用程序不请求删除该全局 临时表则它们就一直会处于有效状态。应用程序可以决定这些全局临时表是 否可以被删除,也可以交由系统来决定。大型数据库应用程序中不可避免地 要产生中间数据,可重用临时表即可以保存这些中间数据并在造当的时候删 除这些数据,又实现了在整个应用程序中共享这些中间数据。本专利技术同时还实现了对可重用临时表表名的管理,在普通系统中,如果 一个应用程序中有几百甚至几万个临时表,如何指定这些表的名称将是个很 大的问题,由于数量多,并且由不同开发人员进行编码,很可能就造成表名 冲突,应用程序不能正常进行。本专利技术提供的可重用临时表命名规则及可重 用临时表管理机制很好地解决了这个问题。本专利技术通过普通表模拟临时表,并通过表名约束实现可重用临时表的重复使用,可避免在应用程序中频繁的创建/删除数据表,提高数据库的使用性 能,减少数据库死锁的发生几率。附图说明图l是本专利技术第一实施例的流程示意图; 图2是本专利技术第二实施例的流程示意图3是本专利技术第三实施例创建可重用临时表的详细流程示意图; 图4是本专利技术第三实施例释放可重用临时表的详细流程示意图。 本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步 说明。具体实施例方式参照图l,示出本专利技术第一实施例的流程示意图。本专利技术提出可重用临时表,使用本寒施例实现的软件系统简称为系统。 本实施例使用普通数据库表来模拟临时表,外部软件系统的应用程序(以下 简称应用程序)可以将该可重用临时表当作一个普通表来使用,同时该可重 用临时表又具有临时表的特性表中的数据不再需要的时候将被删除,以释 放数据库空间。可重用临时表的生命周期包括三部分创建、使用和删除, 创建可重用临时表时,临时表的表名由系统管理;创建之后应用就可以使用 该可重用临时表,此时所有数据库连接,包括其它应用程序的数据库连接都 可以访问该表中的数据;如果应用程序确定可重用临时表不会再被使用,则 可以请求系统删除该可重用临时表,也可由系统自动删除该可重用临时表。本实施例的系统提供一个创建可重用临时表的接口 ,供应用程序调用。 应用程序在创建和释放可重用临时表时不直接向数据库提交请求,而应通过 本实施例提供的接口来进行。本实施例的流禾呈包4舌 步骤Sll,创建可重用临时表; 步骤S12,使用可重用临时表; 步骤S13,删除可重用临时表。其中步骤Sll,创建可重用临时表包括步骤Slll,应用程序向系统传递一个创建可重用临时表的SQL语句,请求创建可重用临时表;步骤S112,系统根据该SQL语句创建可重用临时表。其中步骤S12,使用可重用临时表,应用程序将该可重用临时表作为临时 表使用,存入或读取临时数据。其中步骤S13,删除可重用临时表包括步骤S131,应用程序向系统传递一个删除可重用临时表的SQL语句,请 求删除指定可重用临时表;步骤S132,系统根据该SQL语句删除应用程序指定可重用临时表。举一具体示例如下步骤Slll,应用程序向系统传递一个SQL语句CREATE TABLE TEST (id varchar (20) not null, fl varchar (20)),,,请求创建表名为TEST的可 重用临时表;步骤S112,系统根据该SQL语句创建可重用临时表,该可重用临时表结构 示仿H口表1戶斤示字段名称字段类型字段默认值idvarchar (20)not nullflvarchar (20)表l步骤S12,应用程序将该可重用临时表作为临时表使用,存入或读取临时 数据。步骤S131,应用程序向系统传递SQL语句DROP TABLE TEST,请求删 除表名为TEST的可重用临时表;步骤S132,系统根据该SQL语句找出表名为TEST的可重用临本文档来自技高网...

【技术保护点】
一种临时表管理方法,包括:创建可重用临时表的步骤;使用可重用临时表的步骤;删除和/或释放可重用临时表的步骤。

【技术特征摘要】
1.一种临时表管理方法,包括创建可重用临时表的步骤;使用可重用临时表的步骤;删除和/或释放可重用临时表的步骤。2. 根据权利要求l所述的临时表管理方法,其特征在于,所述创建可重 用临时表的步骤包括应用程序向系统传递创建表语句,请求创建可重用临时表的步骤; 系统根据所述创建表语句创建可重用临时表的步骤。3. 根据权利要求1所述的临时表管理方法,其特征在于,所述删除可重 用临时表的步骤包括应用程序向系统传递删除表语句,请求删除指定可重用临时表的步骤; 系统根据所述删除表语句删除指定可重用临时表的步骤。4. 根据权利要求l所述的临时表管理方法,其特征在于,还包括 在应用程序初始化时,系统删除所述应用程序创建的可重用临时表的步骤。5. 根据权利要求l所述的临时表管理方法,其特征在于 所述系统利用表名识别可重用临时表。6. 根据权利要求5所述的临时表管理方法,其特征在于所述表名包4舌前缀、外部禾呈序标识和随才几标识,同 一个应用程序生成的 可重用临时表的前缀相同;所述外部程序标识是根据应用程序所在机器地址、 硬件和/或系统信息生成;所述随机标识是由外部程序标识、可重用临时表创 建时间和/或随机数组合运算得到。7. 根据权利要求5所述的临时表管理...

【专利技术属性】
技术研发人员:彭璐潘国林
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1