DM数据库临时表

        什么是临时表,顾名思义,临时生成的表,他们的数据存放在内存中,用户可以根据自己的实际需求,将可能临时用到的数据(可以是多表联合之类的操作得到的数据,并不希望保留他们,只是暂时使用)生成一张临时表,对此表的查询是比较快速的,临时表大多存放在temp表空间。当有很多临时表多到内存放不下时,数据库会把数据暂时保存在磁盘中。

DM的临时表支持以下功能:

        1、在临时表中,会话可以像普通永久表一样更新、插入和删除数据;

        2、临时表的 DML 操作产生较少的 REDO 日志;

        3、支持创建索引以提高查询效率

        4、会话或者事务结束后,数据将自动删除;

        5、不同用户可以访问同一个临时表,但是只能看到自己的数据

        6、临时表数据量小,这意味着更高的查询效率

        7、临时表的表结构在数据删除后仍然存在,方便后续使用

        8、临时表的权限管理与普通表一样

达梦数据库支持两种类型的临时表:

on commit preserve rows --session 会话级临时表
on commit delete rows --transaction 事务级临时表

会话级临时表(会话结束后数据会清空):

创建表:

create global TEMPORARY table temp_tb(id int,var varchar2(20)) On Commit Preserve Rows;
insert into  temp_tb values(1,'test_tb1');
commit;

此时,事务完成了提交,查询临时表:

select * from  temp_tb;

 新建一个会话,查询该临时表,此时查询不到临时表中的数据。

 事务级临时表(事务结束后数据会清空):

 建表:

create global TEMPORARY table temp_tb2(id int,var varchar2(20)) On Commit Delete Rows;
insert into  temp_tb2 values(1,'test_tb2');

 此时并事务未提交,查询该临时表:

select * from  temp_tb2;

 提交事务:

commit;

 提交后,事务结束,再次查询该临时表:

select * from  temp_tb2;

如果还有任何问题,欢迎到达梦云适配中心提问哦!

社区 | 达梦云适配中心 (dameng.com)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值