oracle(十)临时表
1.临时表的特点
(1)多用户操作的独立性:对于使用同一张临时表的不同用户,oracle都会分配一个独立的 Temp Segment,这样就避免了多个用户在对同一张临时表操作时
发生交叉,从而保证了多个用户操作的并发性和独立性;
(2)数据的临时性:oracle根据你创建临时表时指定的参数,自动将数据truncate掉。
2.临时表的类型
(1)会话级(On Commit Preserve Rows)
(2)事务级(On Commit Delete Rows )
3.使用场景
(1)存放数据分析的中间数据。
(2)对于一个电子商务类网站,不同消费者在网站上购物,就是一个独立的 session,选购商品放进购物车中,最后将购物车中的商品进行结算。
也就是说,必须在整个session期间保存购物车中的信息。同时,还存在有些消费者,往往最终结账时放弃购买商品。如果直接将消费者选购
信息存放在最终表(permanent)中,必然对最终表造成非常大的压力。 因此,对于这种情况,就可以采用创建临时表的方法来解决。
(3)在用户信息表中有一列专门用来记录用户的当前登陆状态。当用户登陆系统后,该用户登陆状态的字段就改为Y,而当用户退出系统能后,
该字段的内容又改为N。若用户登陆到系统后,终端因为各种原因,如病毒、断电等发生死机的话,此时,用户虽然没有登陆到系统中去,但是,因为
其退出系统的时候,没有正常退出,信息表中显示该用户的登陆状态仍然为Y。此时,用户尝试登陆到重新登录的话,就会被系统拒绝。
把用户登陆信息记录在一张临时性的表中,当用户结束会话,无论是正常的退出还是因为意外情况的退出,只要用户结束一个会话后,那么该临时表中的内容就会清空。