ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables。这些临时表用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据。当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,但临时表的结构以及元数据还存储在用户的数据字典中。
创新互联公司是专业的荔浦网站建设公司,荔浦接单;提供网站设计制作、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行荔浦网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!1.会话级临时表
会话级临时表是指临时表中的数据只在会话生命周期之中存在,当会话结束的时候,Oracle自动清除临时表中数据。所以这里有一个常用的知识点,就是各自会话的数据只有自己才能看到,不同的会话看到的数据自己的(不同的数据),这个知识点在优化场景下利用很多。
格式:
Create Global Temporary Table Table_Name
(xxx int ) On Commit Preserve Rows;
2.事务级临时表
事务级临时表是指临时表中的数据只在事务生命周期中存在。
Create Global Temporary Table Table_Name
(xxx int )
On Commit Delete Rows;
当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。同样的事务级临时表的数据在各会话之间也是独立的
业务优化最常见的情景如下:
1 用户在特定时间批量冲刷数据入库
2 数据库后台通过一个中转表(XXX)先对用户数据落地
3 依据各种逻辑,把XXX表的数据insert into 各种业务表
问题1:很多开发人员把XXX设计成普通表,而开发者理念又认为这其实只是一个中转临时表,索引的设计自然很多人也忽略了。
问题2 : 这个XXX通过多用户刷数据进来,涉及的数据量应该很大,如果设计成普通表,肯定适当地对一些处理过的数据要进行delete,这样明显又影响了业务效率。
利用临时表的特性就可大量提升此业务的性能问题。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。