下载此文档

Oracle 数据库SQL调优.ppt


文档分类:IT计算机 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
培训中心版权所有,未经许可不得向外传播,违者必究 Oracle 数据库 SQL 调优员工培训中心 X X X X 年X月X日培训中心版权所有,未经许可不得向外传播,违者必究概述?数据库的调优包括多个层面,如:操作系统调优、数据合理有效的存储、数据库服务器参数调整、应用层调优等?对应用开发层的 SQL 的调优,是最直接有效的手段,可解决 80 %以上的数据库访问效率问题?本次培训讲述一些书写高效 SQL 语句常用规则培训中心版权所有,未经许可不得向外传播,违者必究规则:用 EXPLAIN PLAN 分析 SQL 语句?显示 oracle 的优化器为 sql 语句选择的执行计划. ?可以在不执行 SQL 的情况下分析语句. ?通过分析,我们就可以知道 ORACLE 是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称. ?通过分析执行计划,可以发现并避免: ?不必要的全表扫描?选择性不高的范围搜索?错误的连接次序?过迟的条件过滤操作培训中心版权所有,未经许可不得向外传播,违者必究规则:用 EXPLAIN PLAN 分析 SQL 语句?按照从里到外,从上到下的次序解读分析的结果. ?分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读. ?如果两个操作处于同一层中,带有最小操作号的将被首先执行. ? NESTED LOOP 是少数不按照上述规则处理的操作, 正确的执行路径是检查对 NESTED LOOP 提供数据的操作,其中操作号最小的将被最先处理. ?目前许多第三方的工具如 TOAD , PL/SQL 都提供了极其方便的 EXPLAIN PLAN 工具培训中心版权所有,未经许可不得向外传播,违者必究规则:用 EXPLAIN PLAN 分析 SQL 语句?举例: SELECT * FROM dept, emp WHERE = Execution Plan : 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 NESTED LOOPS 2 1 TABLE ACCESS (FULL) OF 'EMP ‘ 3 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT' 4 3 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE) 培训中心版权所有,未经许可不得向外传播,违者必究规则:合理有效的使用索引提高查询效率?在多数情况下,通过索引提高查询效率是非常有效的办法?索引一定要建的合理,并且被正确的使用?选择合适的索引列规则: ?选择在 where 子句中常用的查询列做索引字段?选择常用来关联表的字段做索引字段?对普通的 B-TREE 索引,应该选择具有选择性高( high selectivity )的字段做索引字段,若字段的不同取值很少,即选择性低,则适合建位映射索引?不要在经常被修改的字段上建索引。索引会降低 update ,insert ,delete 等操作的效率。培训中心版权所有,未经许可不得向外传播,违者必究规则:合理有效的使用索引提高查询效率?对低选择性的字段,可以考虑建位映射索引。?位映射索引在 oracle 的数据仓库应用中常用。?相比与 B_TREE 索引,位映射索引效率更高,占用空间更小。?对作为 where 子句中的函数参数的字段,应该建函数索引,普通索引将不被使用。培训中心版权所有,未经许可不得向外传播,违者必究规则:合理有效的使用索引提高查询效率?通过索引查询,得到查询结果分成两个步骤,首先扫描索引找到复合条件的记录的 rowid ,然后再根据 rowid 从记录表中得到结果记录。?当查询返回的记录数很多时,从记录表中读取的数据量也很大,不如不通过索引,直接全表扫描效率更高。培训中心版权所有,未经许可不得向外传播,违者必究规则:避免在索引列上使用计算或在非基于函数的索引列上使用函数? WHERE 子句中,. 例如: SELECT … FROM tbl WHERE col+10 > 20 -- 全表扫描, 低效应改为: SELECT … FROM tbl WHERE col > 10 -- 使用 col 列上的索引,高效?当对索引列上使用计算时,应把计算操作右移。?若需要在索引列上应用函数,考虑创建基于函数的索引。培训中心版权所有,未经许可不得向外传播,违者必究规则:避免在索引列上使用计算或在非基于函数的索引列上使用函数?常见的未正确使用索引的例子:在

Oracle 数据库SQL调优 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小290 KB
  • 时间2017-05-11