Oracle SQL 执行计划图 Oracle SQL 执行计划图 访问路径 全表扫描(FTS) 通过rowid的表存取(Table Access by rowid) 索引扫描(Index Scan) 索引唯一扫描(index unique scan) 索引范围扫描(index range scan) 索引全扫描(index full scan) 索引快速扫描(index fast full scan) 表连接 表连接JOIN: 将两个表结合在一起,一次只能连接2个表, 表连接也可以被称为表关联 排序—合并连接(Sort Merge Join) 嵌套循环(Nested Loops) 哈希连接(Hash Join) 排序-合并连接图 嵌套循环连接图 连接适用情况 排序—合并连接 非等值连接、关联列都有索引 嵌套连接 驱动表较小 哈希连接 等值连接 生成执行计划 sql> set autotrace on sql> explain plan for select …………… 用dbms_system存储过程生成执行计划 用PL/SQL DEVELOPER(F5) 干预执行计划_访问路径 FULL /*+ FULL ( table ) */ 指定该表使用FTS INDEX /*+ INDEX ( table [index]) */ 使用该表上指定的索引对表进行索引扫描 INDEX_FFS /*+ INDEX_FFS ( table [index]) */ 使用快速全索引扫描 NO_INDEX /*+ NO_INDEX ( table [index]) */ 不使用该表上指定的索引进行存取,仍然可以使用 其它的索引进行索引扫描 干预执行计划_表连接 USE_NL /*+ USE_NL ( tab [,tab, ...] ) */ 使用嵌套连接 USE_MERGE /*+ USE_MERGE ( tab [,tab,...]) */ 使用排序- -合并连接 USE_HASH /*+ USE_HASH ( tab [,tab, ...]) */ 使用HASH连接 二、Oracle 体系结构 五、Oracle SQL 编写规范 四、典型案例分析暨优化要点 三、Oracle SQL 优化基础 一、培训目的 培训总目录 典型案例_1 系统名称:综合集中维护支撑系统 故障现象:压力测试系统CPU资源100% 故障分析: 数据库实际的数据量仅为6GB左右。但是每天却产生大概150GB左右的REDO LOG 使用LOGMNR分析ORACLE日志,发现基本上都为JMSSTORE表的增、删操作。该表为WEBLOGIC的消息表(CLOB字段)。 典型案例_1 系统名称:综合集中维护支撑系统 故障处理: 运行相关查询业务,在数据库中查询v$sqlarea,JMSSTORE表相关操作的频率 对应用进行跟踪调试,查找每笔查询业务所运行的SQL 最终定位问题产生原因:应用程序在每笔查询后面都附带了消息传输(10次) 将该SQL屏蔽,问题得到解决 典型案例_2 系统名称:OA系统 故障现象:SQL语句执行速度慢(5S) select distinct b.fd_workflowname,a.fd_ from tb_model_workflow b,tb_document c,tb_engine_ a,tb_engine_ g where a.fd_c_workflowid=b.fd_workflowid and g.fd_ and a.fd_c_ and a.fd_c_isend='1'and b.fd_workflowtype='1' and (c.security_level_code=1 or(c.security_level_code=2 and g.fd_ft_staffid=2)or (c.security_level_code=3 and g.fd_ft_staffid=2)) and a.fd_c_enddate>=(sysdate-30)and a.fd_c_enddate<=(sysdate+1) and (c.pany_id=1 or c.send_company=1) order by a.fd_c_enddate desc; Oracle培训课件 二、Oracle 体系结构 五、Oracle SQL编写规范 四、典型案例分析暨优化要点 三、Oracle SQL优化基础 一、培训目的 培训总目录 培训目的 培训目标 培训内容 课堂交互 本次课程大约需要3