繁琐复杂的执行计划、可能迷了开发人员的眼、导致一条性感又傻X的SQL 在服务器上跑得特欢乐
     有介于此、重点抓住几个部分、至于其他的嘛、当然是、非礼勿视咯、、
     
     ㈠ 返回行的数量
        
        Oracle优化器是基于成本的、评估成本的一个主要指标便是查询多少行
        
        一般的、返回值在100W或者大表返回值超过总记录50%、可优化的空间就非常小

标记图为:

㈡ 返回行与逻辑读的比率
        
        经验值是:每行5个以下一致性读(consistent gets + db block gets = 所谓的logical reads)开销是可接受的
        
        标记图为:
        每行需要花费7 个逻辑读

㈢ 聚合查询
     
     
        
        这类查询有 2 点需要注意:
        ① 返回行应是扫描表的行数而不是1
        ② 一般的优化技巧:把索引当成瘦表而无需再回表(回表标识为 Table Access By index rowid)
        
        标记图为:

㈣ 预测行的准确度
     
     
     
        执行计划里有个列叫:Rows、这是Oracle 预测返回的行、有些时候或许不是特马准备
        记得拿该值和真正返回的行比较、如果确实不准确、应该去找原因、比如统计信息、直方图、高水位...等
        
        标记图为:
                         

㈤ 谓词信息
        
        
        Predicate Information 有2 个取值:filter 和 access、其中、access 一般为索引读或hash join
        
        关注此鸟、最重要的在于、查看是否有发生数据类型转换、这抑制了索引、也增大了开销
        
        标记图为:

㈥ 动态采样
     
     
        
        表统计信息过期变质了、或者压根就没分析过表
        
        标记图为:

本文转自:http://blog.csdn.net/dba_waterbin/article/details/9141899

oracle中sql执行性能关注点的更多相关文章

  1. 转:Oracle中SQL语句执行过程中

    Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...

  2. Oracle中获取执行计划的几种方法分析

    以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下     1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...

  3. oracle中sql语句的优化

    oracle中sql语句的优化 一.执行顺序及优化细则 1.表名顺序优化 (1) 基础表放下面,当两表进行关联时数据量少的表的表名放右边表或视图: Student_info   (30000条数据)D ...

  4. 转://看懂Oracle中的执行计划

    一.什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述 二.怎样查看Oracle执行计划? 2.1 explain plan for命令查看执行计划 在sq ...

  5. Oracle查看SQL执行计划的方式

    Oracle查看SQL执行计划的方式     获取Oracle sql执行计划并查看执行计划,是掌握和判断数据库性能的基本技巧.下面案例介绍了多种查看sql执行计划的方式:   基本有以下几种方式: ...

  6. oracle 中SQL 语句开发语法 SELECT INTO含义

    oracle 中SQL 语句开发语法 SELECT INTO含义 在ORACLE中SELECT INTO是如何使用的,什么意思?和SQL SERVER的不一样?   和sqlserver的不一样sql ...

  7. mysql中SQL执行过程详解与用于预处理语句的SQL语法

    mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...

  8. Oracle中SQL语句分类

    Oracle中SQL语句分类如下:1.DML语句 insert/delete/update/select/merge/explan plan/lock table2.DDL语句 create/atlt ...

  9. Oracle中SQL调优(SQL TUNING)之最权威获取SQL执行计划大全

    该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...

随机推荐

  1. String中的方法

    1.string s1 = "abcdefghij";   string s2 = "kuo";   Console.WriteLine(s1.Clone()) ...

  2. 在Android中解决内存溢出 – OutOfMemoryError

    原文链接:http://riggaroo.co.za/fixing-memory-leaks-in-android-outofmemoryerror/ 注:本文在原文基础上在如何判断内存是否泄露方面进 ...

  3. [Android Traffic] 调整定时更新的频率(C2DM与退避算法)

    转载自: http://blog.csdn.net/kesenhoo/article/details/7395253 Minimizing the Effect of Regular Updates[ ...

  4. Android Server Push - MQTT推送实现tokudu

    转自:http://www.juapk.com/thread-2834-1-1.html 项目说明:采用MQTT协议实现Android推送消息传输协议:IBM的MQTT协议 JAR包地址:下载服务器安 ...

  5. 使apache的日志文件里不记录图片文件

    找到: LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-A ...

  6. 彻底解决DZ大附件上传问题

    个. 注意:很多人遇到修改php.ini后重应WEB服务后仍然不能生效.这种情况应该先确认一下所改的php.ini是不是当前PHP所使用的.您可以在WEB目录下建立一个php文件,内容很简单就一句话& ...

  7. BindVertexbuffer

    stride 的意思是 inputstream.layout 的大小 比如 description是 pos uv normal stride 就是一组pos uv normal的大小 ns  里面 ...

  8. 3. Spring Boot热部署【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51584549 在编写代码的时候,你会发现我们只是简单把打印信息改变了下,就需要重新部署,如 ...

  9. Solidworks如何在自定义的基准面上创建3D草图

    1 选择某个基准面 右击"基准面上的3D草图"   2 当基准面出现黄色框即为正确.

  10. 【JavaScript】【PPT】继承的本质

    ※文件引自OneDrive,有些人可能看不到