`
gaojingsong
  • 浏览: 1201139 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Oracle数据库之临时表】

阅读更多

临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前 会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到。临时表不存在并发行为,因为他们对于当前会话都是独立的。

 

创建临时表时,Oracle只创建了表的结构(在数据字典中定义),并没有初始化内存空间,当某一会话使用临时表时,ORALCE会从当前用户的 临时表空间分配一块内存空间。也就是说只有向临时表中插入数据时,才会给临时表分配存储空间。

 

 

ORACLE的临时表在应用系统中有很大的作用,它可以让用户只能够操作各自的数据中而互不干扰,不用担心会破坏或影响其他SESSION/TRANSACTION的数据,这也是数据安全的一种解决方法。 

 

临时表分为SESSION、TRANSACTION两种,SESSION级的临时表数据在整个SESSION都存在,直到结束此次SESSION;而TRANSACTION级的临时表数据在TRANACTION结束后消失,即COMMIT/ROLLBACK或结束SESSION都会清除TRANACTION临时表数据。 

 

两种临时表的语法: 

    create global temporary table 临时表名 on commit preserve|delete rows  

    用preserve时就是SESSION级的临时表,用delete就是TRANSACTION级的临时表 

 

 

所建的临时表虽然是存在的,但是如果insert 一条记录然后用别的连接登上去select,记录是空的。   

--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行) 

--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。

 

 

临时表特点说明

A.临时表数据自动清空后,但是临时表的结构以及元数据还存储在用户的数据字典中。表的定义对所有的会话可见

B.临时表不需要DML锁

C.可以索引临时表和在临时表基础上建立视图

D.在临时表上的索引也是临时的,也是只对当前会话或者事务有效

E.临时表可以拥有触发器

F.可以用export和import工具导入导出临时表的定义,但是不能导出数据

 

 

 

会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。

事务级临时表是指临时表中的数据只在事务生命周期中存在。当一个事务结束(commit or rollback),Oracle自动清除临时表中数据。

 

临时表中的数据只对当前Session有效,每个Session都有自己的临时数据,并且不能访问其它Session的临时表中的数据。因此,

临时表不需要DML锁.当一个会话结束(用户正常退出 用户不正常退出 ORACLE实例崩溃)或者一个事务结束的时候,Oracle对这个会话的

表执行 TRUNCATE 语句清空临时表数据.但不会清空其它会话临时表中的数据.

 

你可以索引临时表和在临时表基础上建立视图.同样,建立在临时表上的索引也是临时的,也是只对当前会话或者事务有效. 

临时表可以拥有触发器.

0
0
分享到:
评论

相关推荐

    主流数据库中临时表的使用

    临时表可以在不同的数据库管理系统中使用,本文将对 MS SQLSERVER、Oracle 和 DB2 中的临时表进行介绍。 MS SQL SERVER 中的临时表 在 MS SQL SERVER 中,临时表是以井号 (#) 或数学符号 (##) 开头的表名。临时表...

    oracle数据库、表空间及数据文件之间的关系

    当进行排序或临时表创建等操作时,临时数据将被存储在这个数据文件中。 #### 六、总结 综上所述,在Oracle数据库中,数据库、表空间和数据文件之间存在着明确的关系:数据库包含多个表空间,而表空间又由一个或多...

    Oracle临时表空间满的解决步骤

    解决 Oracle 临时表空间满的问题需要通过查看当前数据库的默认临时表空间、查看当前临时表空间的大小、创建新的临时表空间、将新建的临时表空间设置为数据库的默认临时表空间、删除原来的临时表空间、创建新的临时表...

    不让临时表空间影响ORACLE数据库性能

    在Oracle数据库系统中,临时表空间是用于存储临时数据的特定区域,这些数据通常由排序、聚合、JOIN等操作产生。当处理大量数据或者运行复杂SQL查询时,临时表空间的作用尤为关键。然而,如果不正确地管理和使用临时...

    查看登录oracle数据库用户记录.docx

    要查看登录 Oracle 数据库的用户记录,可以创建一个临时日志表,并建立一个数据库表触发器来记录用户的登录行为。 创建临时日志表 首先,需要创建一个临时日志表来存储用户的登录记录。可以使用以下 SQL 语句来...

    ORACLE中临时表

    需要注意的是,与SQL Server和Sybase等其他数据库系统相比,Oracle中不应在运行时动态创建临时表,而应在应用程序安装时创建。DDL操作(如创建表)开销较大,应尽量避免在运行时执行。 总结来说,Oracle的临时表...

    Oracle 临时表用法

    ### Oracle 临时表用法详解 #### 一、背景与问题描述 在处理数据库操作时,经常遇到因数据量庞大而导致处理效率降低的问题。例如,某个报表中心的存储过程执行速度过慢,其中一个原因是该过程涉及到一个中间表,...

    如何解决Oracle8i数据库临时表空间满的问题.pdf

    从标题和描述中,我们可以...以上知识点详细阐述了Oracle数据库临时表空间满的问题以及可能的解决方法,并对Oracle数据库的基本概念和管理进行了深入解释,希望能够帮助IT从业者更有效地管理和维护Oracle数据库系统。

    ORACLE数据库 ORACLE数据库

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗、政府等多个领域得到广泛应用。本篇...

    Oracle临时表空间不足和批处理缓慢问题探讨.pdf

    Oracle 临时表空间不足和批处理缓慢问题探讨 本文探讨了 Oracle 临时表空间不足和批处理缓慢问题的原因和解决方法。通过分析和测试,发现了问题的根源在于应用逻辑方面,具体来说是 SQL 语句的编写问题。通过编写...

    Oracle存储过程中使用临时表

    在Oracle数据库中,存储过程是预编译的SQL和PL/SQL代码集合,它们可以用于执行复杂的业务逻辑或数据操作。在某些情况下,特别是在处理大量数据时,使用临时表可以帮助提高性能并简化代码结构。本篇文章将深入探讨...

    oracle临时表(事务级、会话级).docx

    Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存一个会话或事务中的数据。当会话或事务结束时,临时表中的数据自动清空,但是临时表的结构和元数据还存储在用户的数据字典中。 会话级临时表 会话...

    简单理解数据库临时表

    ### 数据库临时表详解 #### 一、临时表的概念与作用 在数据库操作过程中,我们经常会遇到需要存储一些中间结果或临时数据的情况。这时候,**临时表**就发挥了其独特的作用。临时表,正如其名,是根据需求临时创建...

    Oracle释放临时表空间脚本

    在Oracle数据库管理中,临时表空间(Temporary Tablespace)的管理是一项非常重要的任务。合理的管理和优化临时表空间不仅可以提高系统的性能,还可以帮助解决空间不足等问题。本文将详细介绍如何通过SQL脚本进行...

    oracle数据库用户 表空间创建

    根据给定的文件信息,我们可以总结出以下关于Oracle数据库中用户和表空间创建的相关知识点: ### 一、Oracle表空间创建 #### 1....这些知识对于Oracle数据库管理员来说是非常基础且重要的技能之一。

    oracle临时表用法

    Oracle 临时表是一种特殊的表结构,它可以在数据库中临时存储数据,用于实现一些特定的应用场景。下面是 Oracle 临时表的详细知识点: 创建临时表 创建临时表的语法为: ``` CREATE GLOBAL TEMPORARY TABLE table ...

    学习oracle创建一个表空间创建临时表空间创建用户表空间资源的权限

    在Oracle数据库系统中,表空间(Tablespace)是存储数据对象(如表、索引、视图等)的逻辑单位,而临时表空间(Temporary Tablespace)则用于存储临时数据,比如排序或联接操作产生的中间结果。创建和管理表空间及...

    Windows服务器下的Oracle数据库导入到Linux服务器下的Oracle数据库中。

    本文介绍了 Oracle 数据库的基本概念、Windows 服务器下的 Oracle 数据库、Linux 服务器下的 Oracle 数据库、数据库导出、数据库导入、表空间管理、临时表空间管理和数据库安全等知识点。通过本文的学习,读者可以...

    Oracle数据库表与视图

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的数据存储和管理功能。在Oracle中,表和视图是最基本的数据对象,它们构成了数据存储的核心结构。 **表** 是Oracle数据库中的核心元素,它用于存储...

    oracle数据库操作常见错误以及解决方案

    总的来说,处理Oracle数据库操作中的错误需要对数据库的内部工作原理有深入理解,包括表空间管理、回滚段和临时表空间的使用,以及数据块的维护。通过监控数据库性能、定期备份和及时调整资源分配,可以有效地预防和...

Global site tag (gtag.js) - Google Analytics