数据库学习之oracle临时表

1、临时表并不是指其存在性而言的,所以说除非是用drop table 把临时表删除,否则,一旦创建,永久存在。在存在性上和普通表是没有任何区别的。其临时性指的是数据的临时性。

2、临时表数据清空的的条件:①事务提交或回滚②会话结束

3、在oracle中,使用某条命令对数据库进操作时,并不会立即将更新操作更新到数据库中,而是以事务为单位将数据交到数据库中

4、oracle中的会话是指每个与用户交互的进程。在PL/SQL Developer中体现为,每次打开一个SQL Window 或者Command Window时将建立一个会话

5、临时表可以分为:事务性临时表和会话级临时表

事务级临时表:当事务提交或事务回滚时,表中数据将被清空

会话级临时表:会话结束时,表中数据将会被清空

6、创建会话级临时表SQL语句:create global temporary table 表名(列名 属性,列名 属性.......) on commit preserve rows

注意 global不可省略,on commit preserve rows表示当事务提交时,保留数据。commit 命令表示事务结束

7、会话级临时表中的数据仅在当前会话存在,一旦会话结束,数据库将自动清理其中数据(相当于使用了truncate table命令)。各会话之间的数据也是相互独立、互不影响的。

8、创建事务级临时表SQL语句:create global temporary table 表名(列名 属性,列名 属性.......) on commit delete rows

9、事务级临时表的数据仅在当前事务有效,事务一旦结束,所有数据都会自动清空。

10、临时表的应用场景:

①大表分割:大表数据量庞大时创建索引将会花费大量的时间,所以将大表分割成小表,对小表进行操作,最后对所有结果整合

②解决并行问题:当多个进程同时对张表进行操作时,通常对表进行锁定,而更新频繁时,对表的锁定将影响整个数据库的性能。因为各会话在临时表中的数据是相互透明的,所以无需对表进行锁定。提高了数据库的性能

③作为数据缓存:在进行对数据的复杂运算时,可以创建一张临时表,并将这些数据存储在临时表中。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值