1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
  2. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0
  3. 应尽量避免在 where 子句中使用!=或操作符,否则将引擎放弃使用索引而进行全表扫描。
  4. 应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t
    where num=10 or num=20
  5. in 和 not in 也要慎用,否则会导致全表扫描
  6. 下面的查询也将导致全表扫描: select id from t where name like ‘%abc%’
  7. 如果在 where子句中使用参数,也会导致全表扫描。因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。
  8. 应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。
  9. 应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描。
  10. 不要在 where 子句中的“=”左边进行函数、算术运算或其他表达式运算,否则系统将可能无法正确使用索引。
  11. 在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
  12. 索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。一个表的索引数最好不要超过6个,若太多则应考虑一些不常使用到的列上建的索引是否有必要。
  13. 任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。
  14. 在新建临时表时,如果一次性插入数据量很大,那么可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果数据量不大,为了缓和系统表的资源,应先create table,然后insert。
  15. 尽量避免大事务操作,提高系统并发能力。

Oracle查询优化相关推荐

  1. 【书评:Oracle查询优化改写】第14章 结尾章

    [书评:Oracle查询优化改写]第14章 结尾章 一.1  相关参考文章链接 前13章的链接参考相关连接: [书评:Oracle查询优化改写]第一章 http://blog.itpub.net/26 ...

  2. 只是简单读了读《oracle查询优化改写》,就让我获益匪浅,想写好sql,这一本书就够了!

    目录 写在前面 基础知识 空值 返回前几行 获取随机数 like 排序 union 分页(6-10条) 表关联 复制表 日期 日期加减 trunc对于日期的用法 获取时间 判断是否是闰年(只需要判断二 ...

  3. oracle is null效率,Oracle查询优化之is null和is not null优化

    最近工作的时候遇到了比较大的数据查询,自己的sql在数据量小的时候没问题,在数据量达到300W的时候特别慢,只有自己优化sql了,以前没有优化过,所以记录下来自己的优化过程,本次是关于is null和 ...

  4. 【书评:Oracle查询优化改写】第三章

    [书评:Oracle查询优化改写]第三章 BLOG文档结构图 一.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 隐含参数 _ ...

  5. 【书评:Oracle查询优化改写】第四章

    [书评:Oracle查询优化改写]第四章 [书评:Oracle查询优化改写]第四章 BLOG文档结构图 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O ...

  6. oracle随机备选数,Oracle查询优化器(一)

    本系列文章将会介绍Oracle数据库中核心组件之一的查询优化器,并尝试从SQL执行的角度来介绍查询优化器的基础概念.组成以及工作原理. SQL 众所周知,SQL是一种结构化的查询语言.我们在使用SQL ...

  7. oracle书评,【书评:Oracle查询优化改写】第二章

    BLOG文档结构图 在上一篇中http://blog.itpub.net/26736162/viewspace-1652985/,我们主要分析了一些单表查询的时候需要注意的内容,今天第二章也很简单,主 ...

  8. Oracle查询优化-07日期运算

    7.1 加减日.月.年 在oracle中,date类型可以直接加减天数,而加减月份要用add_months函数. select a.hiredate 雇用日期,a.hiredate + 5 加5天,a ...

  9. Oracle查询优化-05元数据查询

    5.1列出已创建的表的清单 select * from all_tables ; select * from dba_tables ; select * from user_tables ; 5.2 ...

  10. Oracle查询优化-04插入、更新与删除数据

    4.1 插入新记录 问题 向表中插入一条新的记录. 解决方案 使用带有values子句的insert语句来插入一行. insert into dept(deptno,dname,loc) values ...

最新文章

  1. yum安装mysql后密码_Centos7:yum安装MySQL5.7后如何设置root密码
  2. 【Java并发编程】20、DelayQueue实现订单的定时取消
  3. My way on Linux - 知识梳理计划
  4. python量化常用_Python量化常用函数
  5. jquery查找父窗体id_Vue父组件获取子组件中的变量
  6. Color类提供的颜色
  7. (笔记)学习C语言经典书籍推荐
  8. python 3.6.5安装教程_Ubuntu16.04安装python3.6.5详细步骤
  9. 学计算机好还是学西点,女生学西点师有后悔的吗 西点师有前途吗
  10. pr cc 2018的快捷键整理
  11. python画满天星_跟我学解Python题-海龟制图满天星
  12. 软件接收机射频信号源matlab程序,射频信号源
  13. 精密划片机——晶圆切割百科
  14. 工作流与BPM的区别
  15. 【OpenVINO 3】POT量化流程
  16. C# Speech学习笔记(一)
  17. 笨鸟的生活(小白的学习日常)
  18. 任鸟飞游戏安全之WXW怀旧安全
  19. 咕咚CEO申波:Fitbit 模式在中国走不通,智能手环将消失
  20. Mariadb-my.cnf文件详解

热门文章

  1. 安装教程--010Editor
  2. SSH命令批量操作服务器
  3. 基于Vue的16个UI框架集锦
  4. 智维专业工程师告诉你,哪款Kvaser多通道CAN总线分析仪性价比最高?
  5. 从30天到17小时,如何让HSPICE仿真效率提升42倍?
  6. 格式化U盘并测试读写速度
  7. 产品经理如何看待NPDP认证?
  8. 基于内容的图像检索系统设计与实现
  9. JS点击按钮打开新的独立页面
  10. QT实现点击按钮打开和关闭窗口