ITPub博客

首页 > 数据库 > Oracle > Oracle 开发人员分析SQL 执行计划的关注点

Oracle 开发人员分析SQL 执行计划的关注点

原创 Oracle 作者:幕南风 时间:2014-07-03 14:05:46 0 删除 编辑
     繁琐复杂的执行计划、可能迷了开发人员的眼、导致一条性感又傻X的SQL 在服务器上跑得特欢乐
     有介于此、重点抓住几个部分、至于其他的嘛、当然是、非礼勿视咯、、

     
     ㈠ 返回行的数量
        
        Oracle优化器是基于成本的、评估成本的一个主要指标便是查询多少行
        
        一般的、返回值在100W或者大表返回值超过总记录50%、可优化的空间就非常小
        

        标记图为:

                         



     ㈡ 返回行与逻辑读的比率
        
        经验值是:每行5个以下逻辑读开销是可接受的
        
        标记图为:
        每行需要花费7 个逻辑读

                        



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

                         



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

                         



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

                         



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

                         



     好了、先写这么多、后续再补上




By David Lin 
2013-06-21
Always be a first-rate version of yourself,instead of a second-rate version of someone else

<!-- Baidu Button BEGIN -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26515977/viewspace-1208175/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle 产生序列的 6 种方法
下一篇: DBA 应该要注意Linux 环境下的一些操作
请登录后发表评论 登录
全部评论
腾讯数据库工程师

注册时间:2012-05-10

最新文章