Oracle 性能优化之一二

本人使用oracle时间不多,但是在项目中积累了一些经验教训,记录于此,以方便自己和他人解决类似的问题。

1.temp space超出限制的问题

问题场景:

在复杂的ETL query中,有时候一张fact表逻辑复杂,来自多张表的join,我习惯写成CTE的方式,

但CTE是放在内存中的,所以比较快捷,但如果数据量过大,则会spool到临时空间中,如果db server的配置不可观,则极有可能发生如此的错误。

解决方案:我之前在sqlserver上遇到的类似问题时,是直接into到物理表中,然后在物理表上创建索引,再用于后面的join.这边这里的同事使用MV(据说是oracle的银弹),把原来的复杂逻辑拆解成多个MV的方式,然后在后来调用的时候,就手工强制刷MV后再使用。

2.插入的数据中含有&

问题场景:

数据库中有两张静态配置表,数据需要我们手工写成INSERT INTO配置数据。发现插入的数据中含有&。如果直接在sqlplus或者在oracle sql develper 中报提示,因为
它们把&后面的字符串识别为变量。

解决方案:

使用set define off;这样就会把含有&的部分也识别为普通字符串。

3.FULL JOIN 的性能问题

问题场景:

ticket(问题描述单)中含有国家和区域,但是此处的国家和区域并不是完全匹配的,即和我们库中的标准的国家和区域表的关系不完全一致。我们需要做的是,根据一定的规则,匹配上正确的国家和区域之间的关系的话则保留,匹配不上的国家为空,区域也保留之类的。需要用到full join.

但问题是,我使用full join后这个MV就从几十秒变为二十分钟左右,让人无法忍受。数据量大概十多万。

解决方案:一同事搜索后,理解full join就是union full join 和 left join 的结果集,然后尝试把full join改写成 left join union right join,MV变回到十几秒就刷好了。

讨论个问题:

如何阅读复杂的sql?并发现可能的数据问题?

找到最基本的主表,关注表与表之间的join字段,看看是否有空值,会miss值。

看看表与表之间的关系是1:1还是M:N。

?
?

?
?

时间: 2024-12-28 13:35:16

Oracle 性能优化之一二的相关文章

Oracle性能优化之执行计划管理_超越OCP精通Oracle视频教程培训31

Oracle性能优化之执行计划管理_超越OCP精通Oracle视频教程培训31 本课程介绍: Oracle视频教程,风哥本套oracle教程培训<<Oracle数据库性能优化培训教程>>的第1/10套:Oracle性能优化之执行计划管理.主要学习Oracle性能优化简介,SQL 语句处理流程,软解析和硬解析,绑定变量及案例,游标的介绍,Oracle的优化器,执行计划的查看,SQL语句访问路径,SQL语句的连接方式,Oracle驱动表,执行计划的干预,常用hint提示的使用. 视频教

Oracle性能优化之统计信息管理_超越OCP精通Oracle视频教程培训32

Oracle性能优化之统计信息管理_超越OCP精通Oracle视频教程培训32 本课程介绍: Oracle视频教程,风哥本套oracle教程培训<<Oracle数据库性能优化培训教程>>的第2/10套:Oracle性能优化之执行计划管理.主要学习Oracle性能优化,统计信息的作用与查看,收集统计信息的方法之analyze,收集统计信息的方法之DBMS_STATS,收集统计信息的方法之数据库,收集统计信息的方法之用户,收集统计信息的方法之表,收集统计信息的方法之索引,收集统计信息的

Oracle性能优化之性能诊断工具_超越OCP精通Oracle视频教程培训33

Oracle性能优化之性能诊断工具_超越OCP精通Oracle视频教程培训33 课程介绍 Oracle视频教程,风哥本套oracle教程培训<<Oracle数据库性能优化培训教程>>的第3/10套:Oracle性能优化之性能诊断工具.主要学习Oracle性能优化,Oracle自带性能诊断工具介绍,日常维护中的性能工具操作过程,awr性能数据的收集时间,awr自动收集性能报告如何实现,awr手工快照如何实现,awr baseline的手工调整与管理,awr性能相关的视图介绍,awr性

Oracle性能优化之性能跟踪工具_超越OCP精通Oracle视频教程培训34

Oracle性能优化之性能跟踪工具_超越OCP精通Oracle视频教程培训34 课程介绍 Oracle视频教程,风哥本套oracle教程培训<<Oracle数据库性能优化培训教程>>的第4/10套:Oracle性能优化之性能跟踪工具.主要学习Oracle性能优化,如何获取跟踪文件,sql_trace及案例,10046事件及案例,trace内容分析,oradebug及案例,dbms_system,dbms_monitor及案例,dbms_support,10053事件及案例,综合案例

Oracle性能优化之资源管理_超越OCP精通Oracle视频教程培训36

Oracle性能优化之资源管理_超越OCP精通Oracle视频教程培训36 课程介绍 风哥Oracle视频教程<<Oracle数据库性能优化培训教程>>的第6/10套:Oracle性能优化之资源管理.学习Oracle性能优化,为什么进行Oracle资源管理,如何对Oracle进行资源管理,Oracle资源管理技术如何使用,生产案例-限制数据库的CPU使用率,生产案例-限制服务器的CPU使用率. 视频教程学习地址: http://edu.51cto.com/course/course

Oracle性能优化之操作系统工具_超越OCP精通Oracle视频教程培训37

Oracle性能优化之操作系统工具_超越OCP精通Oracle视频教程培训37 课程介绍 风哥Oracle视频教程<<Oracle数据库性能优化培训教程>>的第7/10套:Oracle性能优化之操作系统性能工具.学习Oracle性能优化,1.操作系统性能优化分析及工具说明,操作系统性能工具之top/topas,vmstat,iostat,free/lsps/swapinfo,mpstat/sar,网络分析,基本信息查看,操作系统性能收集与分析之nmon,oswatcher. 视频教

oracle 性能优化方向

1调优设计 架构设计(RAC/单机).应用设计(模块设计.E-R模型设计) 2调优应用 代码调优.应用存储对象调优 3条用内存 数据高速缓存区.共享池.重做日志缓存区.大池 4.调优I/O RAID模式.文件系统与裸设备.存储缓存.表空间数据文件划分. 存储对象分布等 5.调优竞争 回滚段.Lock \Latch oracle 性能优化方向,布布扣,bubuko.com

【转载】我眼中的Oracle性能优化

我眼中的Oracle性能优化 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角度,浅谈Oracle性能优化的一些看法. 首先对于性能问题,大家先接触的一般都是某个业务功能慢,速度客户无法接受.那对于系统的性能无非如下图所示: 当一个性能问题出现时,很多人都会猜测问题各个方面的原因. 今天主要谈数据库的性能问题,就问题而言,我们针对问题经过数据库性能分析,发现数据库性能存在问题

我眼中的 Oracle 性能优化

恒生技术之眼 作者 林景忠 大家对于一个业务系统的运行关心有如下几个方面:功能性.稳定性.效率.安全性.而一个系统的性能有包含了网络性能.应用性能.中间件性能.数据库性能等等. 今天从数据库性能的角度,浅谈Oracle性能优化的一些看法. 首先对于性能问题,大家先接触的一般都是某个业务功能慢,速度客户无法接受.那对于系统的性能无非如下图所示: 当一个性能问题出现时,很多人都会猜测问题各个方面的原因.今天主要谈数据库的性能问题,就问题而言,我们针对问题经过数据库性能分析,发现数据库性能存在问题,那