Oracle优化问题

简介: Oracle优化问题
SQL优化问题:
  1. 尽量使用列名取代* (*需要解析 耗内存 cup慢一点但是oracle9i之后都一样)
  2. 解析where是从右到左 尽量将为假的放在左边 为真的放在右边 注意and和or的左右顺序
  3. 尽量使用显示转换 (隐式转换的前提:被转换对象是可以转换的)
  4. 没有主函数时 where having 一样 尽量采用 where(where是先过滤再分组,效率高)
  5. 如果子查询和多表查询都可以使用的情况下,尽量使用多表查询(oracle对多表查询的优化)(理论上只查询一次,子查询 两次)
  6. 尽量不要使用集合运算
  7. Delete快于truncate (oracle的优化)
SQL语句中的null值
  1. 包含null值的表达式都为null //包含空值的表达式都为空值
  2. null != null -- 空值永远不等于空值
  3. 如果集合中含有null,不能使用not in;但是可以使用in
  4. 组函数自动滤空
查看执行计划
  1. explain plan for sql语句: EXPLAIN PLAN FOR SELECT * FROM EMP
  2. plsql 查看计划 F5 :其实pl/sql developer工具内部执行查询 plan_table表然后格式化的结果。 select * from plan_table where statement_id='...'
  3. sqldevelop 查看计划 F10
  4. Navicat 查看计划 点击 解释按钮
  • Description中参数的解析
  1. 全表扫描(TABLE ACCESS FULL )
  2. 通过ROWID的表存取(TABLE ACCESS BY ROWID或rowid lookup)
  3. 索引扫描(TABLE ACCESS BY INDEX SCAN或index lookup)
    (1) 索引唯一扫描(index unique scan)
    (2) 索引范围扫描(index range scan)
    在非唯一索引上都使用索引范围扫描。使用index rang scan的3种情况:
    (a) 在唯一索引列上使用了range操作符(> < <> >= <= between)
    (b) 在组合索引上,只使用部分列进行查询,导致查询出多行
    (c) 对非唯一索引列上进行的任何查询。
    (3) 索引全扫描(index full scan)
    (4) 索引快速扫描(index fast full scan)
  • 表之间的连接
    1. 排序 - - 合并连接(Sort Merge Join, SMJ)
    2. 嵌套循环(Nested Loops, NL)
    3. 哈希连接(Hash Join, HJ)
    另外,笛卡儿乘积(Cartesian Product)

执行顺序的原则

执行顺序的原则是:由上至下,从右向左

由上至下:在执行计划中一般含有多个节点,相同级别(或并列)的节点,靠上的优先执行,靠下的后执行

从右向左:在某个节点下还存在多个子节点,先从最靠右的子节点开始执行。

一般按缩进长度来判断,缩进最大的最先执行,如果有2行缩进一样,那么就先执行上面的。


相关文章
|
1月前
|
监控 Oracle 关系型数据库
"深度剖析:Oracle SGA大小调整策略——从组件解析到动态优化,打造高效数据库性能"
【8月更文挑战第9天】在Oracle数据库性能优化中,系统全局区(SGA)的大小调整至关重要。SGA作为一组共享内存区域,直接影响数据库处理能力和响应速度。本文通过问答形式介绍SGA调整策略:包括SGA的组成(如数据缓冲区、共享池等),如何根据负载与物理内存确定初始大小,手动调整SGA的方法(如使用`ALTER SYSTEM`命令),以及利用自动内存管理(AMM)特性实现智能调整。调整过程中需注意监控与测试,确保稳定性和性能。
150 2
|
3月前
|
SQL Oracle 关系型数据库
Oracle游标的使用和优化技巧
Oracle游标的使用和优化技巧
|
2月前
|
SQL Oracle 关系型数据库
Oracle游标的使用和优化技巧
Oracle游标的使用和优化技巧
|
2月前
|
SQL 存储 Oracle
Oracle数据库中游标的工作原理与优化方法
Oracle数据库中游标的工作原理与优化方法
|
4月前
|
存储 Oracle 数据管理
Oracle 12c的自动数据优化(ADO)与热图:数据管理的“瘦身”与“透视”艺术
【4月更文挑战第19天】Oracle 12c的ADO和热图技术革新数据管理。ADO智能清理无用数据,优化存储,提升查询速度,实现数据&quot;瘦身&quot;;热图则以直观的视觉表示展示数据分布和状态,助力识别性能瓶颈,犹如数据的&quot;透视&quot;工具。这两项技术结合,强化数据管理,为企业业务发展保驾护航。
|
10月前
|
存储 SQL Oracle
Oracle优化避免索引失效
Oracle优化避免索引失效
323 0
|
SQL Oracle 关系型数据库
Oracle数据库优化的总结及优化方法
Oracle数据库优化的总结及优化方法
91 0
|
存储 Oracle 关系型数据库
Oracle优化07-分析及动态采样-DBMS_STATS 包
Oracle优化07-分析及动态采样-DBMS_STATS 包
116 0
Oracle优化07-分析及动态采样-DBMS_STATS 包
|
4月前
|
数据采集 消息中间件 Oracle
通过流计算与消息中间件实现Oracle到ADB的实时数据同步链路优化实践
介绍基于流计算与消息中间件链路(Oracle->OGG->DataHub->Flink/Blink->ADB)实现的Oracle到ADB的数据实时同步架构潜在问题及处理方案。
180 0
通过流计算与消息中间件实现Oracle到ADB的实时数据同步链路优化实践
|
存储 Oracle 关系型数据库
Oracle海量数据优化-02分区在海量数据库中的应用-更新中
Oracle海量数据优化-02分区在海量数据库中的应用-更新中
112 0