- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入浅出谈Oracle临时表课件
深入浅出谈Oracle临时表 胡小文 信昌信息科技 广州开发组 内容提要 一、临时表简介 二、两种临时表的创建和区别 三、临时表的实际案例(问卷调查) 四、临时表使用管理需注意事项 五、不足之处与改进 临时表简介--四问 Ⅰ、与普通表的区别Ⅱ、临时表存放在哪儿?Ⅲ、临时表的特点Ⅳ、什么时候使用临时表? 与普通表的区别 共性 临时表可以有永久表的许多属性。如触发器,检查约束,索引,但不支持:引用完整性,NESTED TABLE 类型的列,索引组织表IOT,CLUSTER,分区,ANALYZE 命令. 可以用export和import工具导入导出表的定义,但是不能导出数据。表的定义对所有的会话可见。 临时表存放在哪儿? 临时表的创建动作不涉及存储空间分配,只有当应用中的会话第一次在临时表中插入数据时才会为该会话的临时表 创建一个临时段(即从该用户所拥有的临时表空间分配存储,默认TEMP)。 临时表创建(创建动作发生)后,信息保存在system表空间(每一个数据库都必须包含一个名为SYSTEM的表空间。该表空间在创建数据库时由系统自动创建,为了保证数据库能正常运行,SYSTEM表空间必须处于在线状态) 临时表和redo/undo 临时表不会为它们的块生成redo。因此,对临时表的操作不是“可恢复的” 。修改临时表中的一个块时,不会将这个修改记录到重做日志文件中。不过,临时表确实会生成 undo,而且这个 undo 会计入日志。因此,临时表也会生成一些redo。 初看上去好像没有道理:为什么需要生成undo? 这是因为你能回滚到事务中的一个 SAVEPOINT。由于undo数据必须建立日志,因此临时表会为所生成的undo生成一些重做日志。这样似乎很糟糕。但是,在临时表上运行的 SQL 语句主要是 INSERT 和SELECT。幸运的是,INSERT 只生成极少的 undo(需要把块恢复为插入前的“没有”状态,而存储“没有”不需要多少空间),另外SELECT根本不生成undo。 关于临时表上的DML活动,有以下结论: 1、 INSERT 会生成很少甚至不生成undo/redo活动。因此,临时表对insert/select型的应用很有用。 比如在处理web翻页时,可以通过临时表来模拟cache返回结果。 2、 DELETE 在临时表上生成的redo与正常表上生成的redo同样多。 3 、临时表的UPDATE会生成正常表UPDATE一半的redo。 临时表的特点 多用户操作的独立性: 对于使用同一张临时表的不同用户,ORACLE都会分配一个独立的 Temp Segment,这样就避免了多个用户在对同一张临时表操作时发生交叉,从而保证了多个用户操作的并发性和独立性; 数据的临时性: 既然是临时表,顾名思义,存放在该表中的数据是临时性的。ORACLE根据你创建临时表时指定的参数(On Commit Delete Rows / On Commit Preserve Rows),自动将数据TRUNCATE掉。 什么时候使用临时表? 1)、当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中。 2)、程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等。 两种临时表的创建 ?会话级的临时表 会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据。 详细介绍 区别(举例) 会话级SQL操作 ???? insert into student(stu_id,class_id,stu_name,stu_memo) values(1,1,张三,福建);???? insert into student(stu_id,class_id,stu_name,stu_memo) values(2,1,刘德华,福州);???? insert into student(stu_id,class_id,stu_name,stu_memo) values(3,2,S.H.E,厦门);SQL select *from student ; STU_ID CLASS_ID STU_NAME STU_MEMO------ -------- -------- --------------------------------------------------------------------------------???? 1??????? 1 张三???? 福建???? 2??????? 1 刘德华?? 福州
您可能关注的文档
最近下载
- 青岛版四年级上册数学整册单元试卷含答案.docx
- TB_10751-2018_高速铁路路基工程施工质量验收标准.docx
- 2024年山东省学前教育职业技能大赛参考试题库(含答案).pdf VIP
- 第三讲:二方连续纹样.03.ppt VIP
- IPC-6012F 2023 EN,刚性印制板性能要求Qualification and Performance Specification for Rigid Printed Boards.pdf
- 西门子S120变频器调试-说明书.pdf VIP
- 西南大学PPT模板.pptx
- 高二通用技术《容易制作的便携式小板凳》素材.pdf
- (高清版)BT 28450-2020 信息技术 安全技术 信息安全管理体系审核指南.pdf VIP
- 3D打印技术课件.ppt VIP
文档评论(0)