通过oracle执行计划识别低效sql及优化.docx

通过oracle执行计划识别低效sql及优化.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通过Oracle执行计划识别低效SQL及优化 通过Oracle执行计划识别低效SQL 、*、亠、、兀 1 ^注意点 对应执行计划 简要分析 返回行与逻辑读比率 A-Rows〔buffers 真实返回1行记录,花费1048个逻辑读,性能 有大问题 1 |1048 评估值准确的重要性 E-Rows |A-Rows 评估32行,真实75888行,非常不准确,执行 计划的准确性让人怀疑 | 1 1 | 1 |75888 32 |75888 类型转换需认真关注 |* 1 | TABLE ACCESS FULL |T_C( O类型转换,一般用不上索引,所以是 fileter不 是 access 23) Predicate in formati on (ide ntified 1 - filter(TO NUMBER( “ID” )= 请小心递归调用部分 统计信息 产生4321此递归调用 这一般是SQL带函数引发的 4321 recursive calls 0 db block gets 54321 con siste nt gets 注意表的访冋次数 Start | E-Rows |A-Rows 表被访问了 80016次,偏多了,一般不考虑N1 连接,要考虑hash连接等 1 | 32 |80016 80016| 1 |75888 注意表真实访问行数 E-Rows |A -Rows 1000 | 1000 70183 | 10 除了预测错外,要在执行计划中有count stopkey关键字。还可能是rownum分页查询的 执行计划,表示在第10行就停止前进了 谨慎观察排序与否 统计信息 1 sorts (memory) 0 sorts(disk) 73155 rows processed 查看该SQL是否排序, 此处说明在内存中排序 并未到磁盘中排序 通过逻辑结构调整来优化 SQL 现象描述 调整操作 某统计语句较慢 调整block大小,如从2KB调整为16KB 某范围查询语句较慢 从普通表调整为分区表 某表删除大量记录后访问依然很慢 释放咼水位线 某数据库表空间查询结果返回很慢 清除回收站对象 某应用系统的表记录插入慢 将频繁自动扩展的表空间改成固定尺寸, 且设置较大值,避免频繁扩展 某等值查询语句慢 添加索引改成索引扫描 使用rowid扫描 避免类型转换 避免使用函数如funci (col) =123 通过表结构设计来优化 SQL 现象描述 调整操作 索引失效导致分区大表用不到索引 确认是否执行过导致 索引失效的操作 全分区扫描 增加适当分区,使查询落在指定分区,避免全区扫描 数据全部落入默认分区,查询缓慢 将默认分区做split分区,同时增加分区表各分区比例 监控 分区表建立局部索引,但是 SQL用不上分区条件,导 致扫描许多小索引 将分区表的局部索引调整为全局索引 对全局临时表手机信息导致执行计划错误,sql性能低 不收集全局临时表统计信息 接口程序中根据不同业务设计了多张接口表,导致并 发受到影响,清理数据开销也大 改造接口表,统 成 张全局临时表 一条SQL关联10多个表,性能较低 通过将某关键表的字段进行扩充,将表连接中需要的 字段都融入到这个表中

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档