Oracle数据库SQL优化培训.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle数据库SQL优化培训

SQL重编译 提高语句共享性,减小Oracle分析语句所消耗的资源,减小latch等待,提高内存使用效率 使用绑定变量,不使用常量 遵守制定好的书写规范,因为Oracle判断两个语句是否相同是非常严格的,大小写、多余的空格都会影响其判断 避免一个过程或匿名SQL块过大,它会对shared pool造成大的压力 下面这个语句每执行一次就需要在SHARE POOL 硬解析一次,一百万用户就是一百万次,消耗CPU和内存,如果业务量大,很可能导致宕库…… Select * from dConMsg where contract_no = 32013484095139 如果绑定变量,则只需要硬解析一次,重复调用即可 目录 系统优化概述 SQL程序优化原理 SQL程序优化方法 如何对SQL问题进行分析 3 4 6 如何优化SQL的执行计划 SQL程序调优案例 1 2 5 SQL程序调优案例 1 SQL调优分析案例 1.1 没有合适索引选择全表扫描执行计划 1.2 使用函数导致不走索引 1.3 通配符导致的语句不走索引 1.4 隐式类型转换导致不走索引 1.5 对视图的基表创建索引提高查询效率 1.6 索引选择性差导致语句不走索引 1.7 不合适的索引产生低效的执行计划 1.8 使用组合索引提高查询性能(1) 1.9 使用组合索引提高查询性能(2) 1.10 合理选择分区表的索引类型 1.11 对象统计信息导致SQL选择错误执行计划 1.12 Exsist使用表连接替换 1.13 表碎片造成大量物理读 1.14 表存储参数设置不合理导致逻辑读过高 1.15 不等于条件导致不使用索引(1) 1.16 IS NULL 与 IS NOT NULL造成不走索引 1.17 多表关联语句优化一例 1.18 不等于条件造成不走索引(2) 1.19 游标结果集数据类型和条件不一致导致隐式转换 SQL程序调优案例 2 SQL优化及索引使用经验总结 2.1 在选择性高的列上建索引 2.2 经常用于连接的列建立索引 2.3 注意索引列要避免被运算 2.4 注意控制表上索引的数量 2.5 注意分区表的索引类型选择 2.6 使用NOLOGGING参数增加索引创建速度 2.7 如何对字段的某些值建索引 2.8 值分布不均匀的索引列,绑定变量可能选择错误的执行计划 2.9 跨库多表连接 3 索引创建使用的其他原则 谢谢! * 首页面 * 结束页 使用QUEST TOAD 查看执行计划 安装QUEST TOAD软件 建立数据库连接 进入SQL语句执行窗口 输入并选定SQL语句 在’SQL-WINDOW’菜单中选‘EXPLAIN PLAN CURRENT SQL’, 即可看到执行计划, 并不真正执行语句,不需要等待结果 使用PL/SQL查看执行计划 安装PL/SQL软件 建立数据库连接 进入SQL语句执行窗口 输入并选定SQL语句 按F5即可看到执行计划, 并不真正执行语句,不需要等待结果 通过数据库视图查看执行计划 通过SQL语句的SQL_ID查看数据库视图: v$sql_plan: select * From v$sql_plan where sql_id=g2mp1m8vj0042; dba_hist_sql_plan: select * From dba_hist_sql_plan where sql_id=g2mp1m8vj0042; 查看执行计划 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=31757 Card=183895 By tes 1 0 HASH JOIN (Cost=31757 Card=183895 Bytes 2 1 TABLE ACCESS (FULL) OF PTO_FAMLIYNO_HFBZ (Cost=455 Car d=178066 Bytes 3 1 TABLE ACCESS (FULL) OF SERV_PRODUCT (Cost=30170 Card=7 62969 Bytes Statistics ---------------------------------------------------------- 0 recursive calls 0 db block gets 318437

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档