DM数据库的临时表

DM数据库的临时表
概述
当处理复杂的查询或事务时,由于在数据写入永久表之前需要暂时存储一些行信息或需
要保存查询的中间结果,可能需要一些表来临时存储这些数据。DM 允许创建临时表来保存会
话甚至事务中的数据。在会话或事务结束时,这些表上的数据将会被自动清除。
临时表中的数据不能像在其它永久表中的数据那样进行备份,当事务结束或会话断开
时,数据就会被清空。在临时表创建过程中,不会像永久表和索引那样自动分配数据段,而
是仅当第一次执行 DML 语句时,才会为临时表在临时表空间中分配空间。并且,对于不同的
会话,临时表上的数据是独享的,不会互相干扰,即会话 A 不能访问会话 B 临时表上的数据。
对复杂查询的传统响应方式之一是使用一个视图,使复杂查询更易于操作。但是,视图
在每次访问时都需要执行,因而大大降低了性能。而通过 AS SELECT 子句建立的临时表是
将复杂查询的结果通过临时 B 树记录了下来,下次访问不用重新执行查询就可以获得数据,
并且会话或事务结束后数据将自动删除,是复杂查询的一个优秀的解决方案,且提高了性能。
DM 临时表支持以下功能:

  1. 在临时表中,会话可以像普通永久表一样更新、插入和删除数据;
  2. 临时表的 DML 操作产生较少的 REDO 日志;
  3. 临时表支持建索引,以提高查询性能;
  4. 在一个会话或事务结束后,数据将自动从临时表中删除;
  5. 不同用户可以访问相同的临时表,每个用户只能看到自己的数据;
  6. 临时表的数据量很少,意味着更高效的查询效率;
  7. 临时表的表结构在数据删除后仍然存在,便于以后的使用;
  8. 临时表的权限管理跟普通表一致。
    临时表 ON COMMIT 关键词指定表中的数据是事务级还是或会话级的,默认情况下是事
    务级的。
    为了查看临时表效果
    设置为非自动提交事务模式,自动提交按钮方框对号取消
    非自动提交模式设置后,新开起的会话,执行SQL后,事务不会提交,点击提交按钮,或者commit命令后,提交当前会话窗口事务
    在这里插入图片描述
    创建事务级临时表
    create global temporary table FUT_LSB_CJSW (c1 int, c2 varchar(20))on commit delete rows;

插入两条数据
insert into FUT_LSB_CJSW values(1,‘a’);
insert into FUT_LSB_CJSW values(2,‘b’);
在这里插入图片描述
当前会话连接查看事务级临时表
select * from FUT_LSB_CJSW;
在这里插入图片描述

提交事务级临时会话
commit;
在这里插入图片描述

查询事务级临时表,提交操作后,临时表被清空,查询无数据返回
在这里插入图片描述

修改临时表
修改表定义,执行如下SQL命令
在这里插入图片描述

删除临时表
drop table FUT_LSB_CJSW;

在这里插入图片描述
创建会话级临时表
create global temporary table FUT_LSB_CJHH (c1 int, c2 char(20))on commit preserve rows;

插入两行数据
insert into FUT_LSB_CJHH values(1,‘a’);
insert into FUT_LSB_CJHH values(2,‘b’);

查询会话级临时表
select * from FUT_LSB_CJHH;
在这里插入图片描述
提交
Commit;
在这里插入图片描述

重新打开一个会话,查询不到数据
在这里插入图片描述
当前会话查询会话级临时表
在这里插入图片描述

事务级临时表,提交后,表就自动清空了
会话级临时表,提交后,当前会话依然存在数据,重新打开另一个会话,查询表数据不存在。

DM 武汉达梦数据库股份有限公司
24小时免费服务热线:400 991 6599
达梦技术社区:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值