ORACLE里SQL优化

作者: wqh8384 | 来源:发表于2018-12-23 19:40 被阅读11次

        这周一直在做一个需求,是关于ORACLE性能优化方面的,针对这种情况,这周也看了不少的资料,在此,也写点自己的想法。

         没做这个需求以前,一直认为SQL优化无非就是把SQL语句做一点修改,转换,也就能达到目标了,但是现在看来自己还是太天真了。SQL优化的基础知识包括优化器,执行计划,Cursor,绑定变量,查询转换,统计信息,Hint和并行等各方面。

       ORACLE里的SQL优化的本质是基于对CBO和执行计划的深刻理解,终极目标当然是缩短目标SQL语句的执行时间,基于上述目的,我们通常只有如下三个方法可以选择:

        (1)降低目标SQL语句的资源消耗

        (2)并行执行目标SQL语句

        (3 )平衡系统的资源消耗

        其中方法一十最常用的SQL优化的方法,这种方法的核心在于不改变业务逻辑的基础上来降低目标SQL语句的资源消耗,,要么不改写SQL但通过调整执行计划或相关表的数据来降低目标SQL的资源消耗。通过修改而优化执行计划后,目标SQL的执行时间往往能降低好几个数量级。对CBO和执行计划的理解程度,对CBO和执行计划理解得越透彻,优化手段的应用就会越成熟。

        在很多人的眼里,SQL优化就是走索引,就是用走索引类取代全表扫描,我以前也是这么认为的,但是这是非常肤浅的。

        首先,在ORACLE数据库中,不是说走索引就一定比走全表扫要好,这跟表的大小和索引的连接方式很大的关系,比如说,很多情况下走索引的嵌套循环连接的执行效率往往比不上走全表扫描的哈希连接的执行效率;

         其次,SQL优化通常都是通过调整执行计划来达到优化的目的,用走索引来取代全表扫描只是对执行计划调整中的一种;

        最后,即便是走索引,也会有一些额外的变化,如果对CBO和执行计划理解不深刻,不了解这些变化,即便走了索引,也可能没有效果。

       今天就说这些,下周要真正的上战场了,下周进一步细讲!

相关文章

  • ORACLE里SQL优化

    这周一直在做一个需求,是关于ORACLE性能优化方面的,针对这种情况,这周也看了不少的资料,在此,也写点自...

  • Oracle SQL优化学习

    Oracle SQL优化进阶学习 引言 对于下面的Oracle分页如何优化该段语句: SELECT * FROM ...

  • Oracle提高SQL执行效率的三种方法

    Oracle提高SQL执行效率的三种方法 (修改了一下) 要提高SQL在Oracle里的执行效率,优化应用的业务逻...

  • oracle sql 优化

    1.找出两个表中的差异记录,比如: 2. 查询语句的执行计划 其他示例:

  • Oracle sql优化

    (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子...

  • Java技术面试问题小结

    ArrayList和linkedList的区别。 Oracle SQL优化。 设计模式 1 ArrayList和l...

  • Oracle cursor学习笔记

    @[toc]最近在看《基于oracle的sql优化》一书,并做了笔记 一、oracle库缓存 1.1、库缓存简介 ...

  • oracle视频教程入门运维DBA性能优化OCP培训SQL数据库

    oracle视频教程入门运维DBA性能优化OCP培训SQL数据库在线课程 ORACLE数据库系统是美国ORACLE...

  • RBO和CBO详解

    RBO和CBO的基本概念 Oracle数据库中的优化器又叫查询优化器(Query Optimizer)。它是SQL...

  • sql优化 - 基于oracle

    select语句优化 select查询的生命周期 在共享池中搜索sql语句是否存在 -- 缓存 验证sql语句...

网友评论

    本文标题:ORACLE里SQL优化

    本文链接:https://www.haomeiwen.com/subject/qouvkqtx.html