zoukankan      html  css  js  c++  java
  • oracle中sql执行性能关注点

    繁琐复杂的执行计划、可能迷了开发人员的眼、导致一条性感又傻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

  • 相关阅读:
    SpringBoot报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
    SOAP报文转成JAVA对象
    Tomcat他山之石.可以攻玉(一)Server组件
    Tomcat:At least one JAR was scanned for TLDs yet contained no TLDs
    Tomcat8源码笔记(八)明白Tomcat怎么部署webapps下项目
    setsebool命令详解与SELinux管理
    Nginx访问限制模块limit_conn_zone 和limit_req_zone配置使用
    CentOS7防止CC攻击防止SSH爆破采取的措施
    Linux常用命令总结
    Linux下rsync命令使用总结
  • 原文地址:https://www.cnblogs.com/nizuimeiabc1/p/4846635.html
Copyright © 2011-2022 走看看