关闭

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

发表于:2013-6-28 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:David_Lin    来源:51Testing软件测试网采编

  繁琐复杂的执行计划、可能迷了开发人员的眼、导致一条性感又傻X的SQL 在服务器上跑得特欢乐

  有介于此、重点抓住几个部分、至于其他的嘛、当然是、非礼勿视咯、、

  (一)返回行的数量

  Oracle优化器是基于成本的、评估成本的一个主要指标便是查询多少行

  一般的,返回值在100W或者大表返回值超过总记录50%、可优化的空间就非常小

  标记图为:

  (二)返回行与逻辑读的比率

  经验值是:每行5个以下逻辑读开销是可接受的

  标记图为:

  每行需要花费7 个逻辑读

  (三)聚合查询

  这类查询有 2 点需要注意:

  ① 返回行应是扫描表的行数而不是1

  ② 一般的优化技巧:把索引当成瘦表而无需再回表(回表标识为 Table Access By index rowid)

  标记图为:

  (四)预测行的准确度

  执行计划里有个列叫:Rows、这是Oracle 预测返回的行、有些时候或许不是特马准备

  记得拿该值和真正返回的行比较、如果确实不准确、应该去找原因、比如统计信息、直方图、高水位...等

  标记图为:

  (五)谓词信息

  Predicate Information 有2 个取值:filter 和 access、其中、access 一般为索引读或hash join

  关注此鸟、最重要的在于、查看是否有发生数据类型转换、这抑制了索引、也增大了开销

  标记图为:

  (六)动态采样

  表统计信息过期变质了、或者压根就没分析过表

  标记图为:

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

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号