oracle 临时表的 效率

转载网上搜的总结 有点启发
问题总结:
临时表 物理表 以及内存表 三个表我都做了10W 次的数据 查询 增加 删除 修改的工作 结论如下:

临时表在各项指标中 均超过内存表以及物理表 无疑是效率最快的! 查询效率 内存表和临时表效率接近,物理表查询效率微慢,增删改 效率 (所耗时间)物理表 > 内存表 > 临时表,
结论为 物理表有详细的日志记录,但效率不高,内存表提高了效率,同样日志也很全,但是要分配KEEP池空间(太大占内存),临时表 效率最高,日志记录较少,可以用作存储过程缓存数据使用,缺点就是,还是要占用大量的IO读写操作,效率并没有什么质的飞跃(时间缩短较物理表缩短1半),慎用!无论是事务还是会话型 都要清空数据 所以生命周期有限,使用时需特别注意!

补充一点,临时表比普通表好的重点不在于不产生redo log,而是可以避免在大数据量操作的时候,不用临时表的单个查询会将大量数据直接读进内存,往往造成内存不够用,此时系统会将数据部分存储在磁盘上,这样会不停的在内存和磁盘上进行数据交换,这个操作会极大的影响效率,比单纯的读I/O更加浪费时间。
所以在进行大数据量操作的时候,一般建议用临时表,如果数据量比较小,在保证正确执行计划的前提下临时表的确没什么大作用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
表设计规范 2017年11月3日 oracle数据库表设计全文共29页,当前为第1页。 表设计范式 表与表关联关系 主键、外键、约束 表分区 目录 oracle数据库表设计全文共29页,当前为第2页。 表设计规范-范式 1NF:如果关系R 中所有属性的值域都是单纯域,那么关系模式R是第一范式的 那么符合第一模式的特点就有 1)有主关键字 2)主键不能为空, 3)主键不能重复, 4)字段不可以再分 例如: StudyNo " Name " Sex " Contact 20040901 john Male Email:[email protected],phone:222456 20040901 mary famale email:[email protected] phone:123455 以上的表就不符合,第一范式:主键重复(实际中数据库不允许重复的),而且Contact字段可以再分所以变更为正确的是 StudyNo " Name " Sex " Email " Phone 20040901 john Male [email protected] 222456 20040902 mary famale [email protected] 123455 oracle数据库表设计全文共29页,当前为第3页。 表设计规范-范式 2NF:如果关系模式R是第一范式的,而且关系中每一个非主属性不部分依赖于主键,称R是第二范式的 满足第一范式的前提下,消除部分函数依赖 StudyNo " Name " Sex " Email " Phone " ClassNo " ClassAddress 01 john Male [email protected] 222456 200401 A楼2 01 mary famale [email protected] 123455 200402 A楼3 这个表完全满足于第一范式, 主键由StudyNo和ClassNo组成,这样才能定位到指定行 但是,ClassAddress部分依赖于关键字(ClassNo-〉ClassAddress), 所以要变为两个表 表一 StudyNo " Name " Sex " Email " Phone " ClassNo 01 john Male [email protected] 222456 200401 01 mary famale [email protected] 123455 200402 表二 ClassNo " ClassAddress 200401 A楼2 200402 A楼3 oracle数据库表设计全文共29页,当前为第4页。 表设计规范-范式 3NF:不存在非主属性的传递性依赖以及部分性依赖 StudyNo " Name " Sex " Email " bounsLevel " bouns 20040901 john Male [email protected] 优秀 $1000 20040902 mary famale [email protected] 良 $600 这个完全满足了第二范式,但是bounsLevel和bouns存在传递依赖 更改为: 表1: StudyNo " Name " Sex " Email " bouunsNo 20040901 john Male [email protected] 1 20040902 mary famale [email protected] 2 表2: bounsNo " bounsLevel " bouns 1 优秀 $1000 2 良 $600 oracle数据库表设计全文共29页,当前为第5页。 基本表的性质 基本表与中间表、临时表不同,因为它具有如下四个特性:   (1) 原子性。基本表中的字段是不可再分解的。   (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。   (3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。   (4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。 理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。 范式标准 基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。 例如: 表1 商品表的表结构  商品名称 商品型号 单价 数量 金额  电视机 29寸 2,500 40 100,000增加"金额"这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。 oracle数据库表设计全文共29页,当前为第6页。 表设计范式 表与表关联关系 主键、外键、约束 表分区 目录 oracle数据库表设计全文共29页,当前为第7页。 表与表关联关系 表关联: 一对一、一对多 、多对多 要善于识别与正确处理多对多的关系 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值