1. 强制索引失效
    如果两个或以上索引具有相同的等级,你可以强制命令ORACLE优化器使用其中的一个(通过它,检索出的记录

数量少) . 举例:
SELECT ENAME FROM EMP WHERE EMPNO = 7935
AND DEPTNO + 0 = 10 /DEPTNO上的索引将失效/
AND EMP_TYPE || ‘' = ‘A' /EMP_TYPE上的索引将失效/
这是一种相当直接的提高查询效率的办法. 但是你必须谨慎考虑这种策略,一般来说,只有在你希望单独优化几个SQL时才能采用它.这里有一个例子关于何时采用这种策略,假设在EMP表的EMP_TYPE列上有一个非唯一性的索引而EMP_CLASS上没有索引.
SELECT ENAME FROM EMP WHERE EMP_TYPE = ‘A' AND EMP_CLASS = ‘X';
优化器会注意到EMP_TYPE上的索引并使用它. 这是目前唯一的选择. 如果,一段时间以后, 另一个非唯一性建立在EMP_CLASS上,优化器必须对两个索引进行选择,在通常情况下,优化器将使用两个索引并在他们的结果集合上执行排序及合并. 然而,如果其中一个索引(EMP_TYPE)接近于唯一性而另一个索引(EMP_CLASS)上有几千个重复的值. 排序及合并就会成为一种不必要的负担. 在这种情况下,你希望使优化器屏蔽掉EMP_CLASS索引. 用下面的方案就可以解决问题.
SELECT ENAME FROM EMP WHERE EMP_TYPE = ‘A' AND EMP_CLASS||'' = ‘X';

SQL优化常用方法31相关推荐

  1. SQL优化常用方法41

    用UNION-ALL 替换UNION ( 如果有可能的话) 当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序. 如果用UN ...

  2. SQL优化常用方法36

    用UNION替换OR (适用于索引列) 通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意,以上规则只针对多个索引列有效. 如果有colu ...

  3. SQL优化常用方法49

    优化GROUP BY 提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多.低效: SELECT JOB , AVG ...

  4. SQL优化常用方法24

    用EXPLAIN PLAN 分析SQL语句 EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表, ...

  5. SQL优化常用方法10

    删除重复记录 最高效的删除重复记录方法 ( 因为使用了ROWID) DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP ...

  6. SQL优化常用方法9

    整合简单,无关联的数据库访问 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) 例如: SELECT NAME FROM EMP WHERE EMP_NO = 1 ...

  7. SQL优化核心思想:或许你不知道的5条优化技巧

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书. --异步小编 随着系统的数据量逐年增加,并发量也成倍增长,SQL性能越来越成为IT系统 ...

  8. SQL优化|Java面试题

    看到一篇非常全面的SQL优化文章,在开发的工作中往往不考虑性能上的缺失(在一开始的时候数据量不大也看不出速度上的区别).但写的越多越应该规范一下写法. 原文链接:http://www.jfox.inf ...

  9. 关于数据库SQL优化

    1.数据库访问优化 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬 ...

最新文章

  1. Python实现前端AES加密方式分析,***密码学必备!
  2. 程序架构探讨—007 应用服务器集群的伸缩性之链路负载均衡
  3. 干货 | 一文带你搞定Python 数据可视化
  4. boost::container模块实现检查相等的容器的测试程序
  5. P4323-[JSOI2016]独特的树叶【换根dp,树哈希】
  6. jooq 执行sql_使用jOOQ和Java 8的CompletableFuture进行异步SQL执行
  7. 规避软件架构风险之反模式
  8. 多线程TCP的socket通信
  9. goahead 的认证和自定义登陆页面的cookie使用【原创】
  10. 用C#设计一个四则运算器
  11. 财务有必要学python吗-python在财务里面有用吗
  12. 转:HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)...
  13. 实施工程师职业的前景和发展思考
  14. 各种多媒体软件安装教程
  15. 解决mac系统压缩文件.zip,在win解压后,出现乱码
  16. Windows下Postman安装以及汉化
  17. 6070. 计算字符串的数字和
  18. sd卡写保护解除工具_SD卡在电脑里无法格式化怎么办?
  19. 做一个模仿Windows画板喷漆笔刷效果
  20. 哈工大软件过程与工具复习5——第9讲 软件设计

热门文章

  1. 月均数据_利用Python进行数据分析(附详细案例)
  2. gpu超算算法_科学网—GPU“虎山”探未来
  3. 1082 与7无关的数(思维题,巨坑)
  4. C#-常用对象-思维导图
  5. Java Project和Web Project
  6. 关于 hibernate 官网的例子 出现的问题
  7. 表达式x=x(x-1)
  8. poj 3261 Milk Patterns 后缀数组 最长重复子串
  9. 软件项目风险评估报告00
  10. dll文件的c++制作