`
三问飞絮
  • 浏览: 317229 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Oracle优化记录之一(Where条件顺序)

 
阅读更多

Where子句的条件的顺序

由于Oracle解析Where查询条件是自左向左,自下而上进行的。所以,可以过滤越多记录的条件越应该往后面移动。最大限制的Where子句放在句末。

--摘录
-- (低效,执行时间156.3秒)
SELECT … 
FROM EMP E
WHERE  SAL > 50000
AND    JOB = ‘MANAGER’
AND    25 < (SELECT COUNT(*) FROM EMP
             WHERE MGR=E.EMPNO);

-- (高效,执行时间10.6秒)

SELECT … 
FROM EMP E
WHERE 25 < (SELECT COUNT(*) FROM EMP
             WHERE MGR=E.EMPNO)
AND    SAL > 50000
AND    JOB = ‘MANAGER’; 
 
分享到:
评论

相关推荐

    oracle语句优化方法.txt

    1) 选择最有效率的表名顺序(只在基于规则的优化器中有效)...ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾.

    Oracle Sql 性能优化

    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 3、SELECT中避免使用 ‘ * ‘: ORACLE在解析的过程中, ...

    oracle的sql优化

     对于Where条件的顺序,过滤到最大查询记录数量的条件必须写在Where条件的结尾处。  Where条件中涉及到使用复杂函数判定的必须注意要写到Where条件的最前面 3.索引方面  记录数少的表保留有主键索引就可以了,...

    Oracle+SQL性能优化40条.docx

    * Oracle 采用自下而上或自右向左的顺序解析 WHERE 子句 * 表之间的连接必须写在其他 WHERE 条件之前 七、SELECT 子句中避免使用“*” * Oracle 在解析 SQL 语句的时候,对于“*”将通过查询数据库字典来将其转换...

    ORACLE语句优化

    53个Oracle语句优化规则详解1.选用适合的Oracle优化器2.访问Table的方式Oracle采用两种访问表中记录的方式3.共享SQL语句4.选择最有效率的表名顺序5. WHERE子句中的连接顺序。。。

    ORACLE优化SQL语句,提高效率

     Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些能够过滤掉最大数量记录的条件必须写在WHERE子句的末尾。  (3)SELECT子句中避免使用‘*’:  Oracle在解析...

    ORACLE_SQL性能优化

    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. (3) SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的...

    SQL性能调优之-Oracle语句优化53个规则详解

    Oracle 语句优化是 SQL 性能调优的关键要素之一。以下是 53 个规则详解: 规则 1: 选用适合的 Oracle 优化器 Oracle 的优化器共有 3 种:基于规则(RULE)、基于成本(COST)和选择性(CHOOSE)。设置缺省的优化器...

    oracle SQL性能优化

    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. (3) SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的...

    ORACLE SQL性能优化系列

    1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,...

    Oracle SQL性能优化方法研究.docx

    Oracle SQL性能优化是数据库管理中极为重要的一部分。随着数据库的日益庞大,数据查询的速度和效率对整个系统的性能产生了极大的影响。因此, Database Administrator 需要掌握 Oracle SQL性能优化的方法来提高...

    Oracle数据库中基本的查询优化与子查询优化讲解

    Oracle采用自下而上的顺序解析WHERE字据,从优化性能角度考虑,建议将那些可以过滤掉大量记录行的条件写在WHERE子句的末尾,而将表 之间的连接条件置于其他WHERE子句之前,即对易排查的条件先做判断处理,这样在过滤...

    Orcle面试知识点

    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. (3) SELECT子句中避免使用 ‘ * ‘: ORACLE在解析的...

    Oracle分页查询性能优化代码详解

    对于数据库中表的数据的 Web 显示,如果没有展示顺序的需要,而且因为满足条件的记录如此之多,就不得不对数据进行分页处理。常常用户并不是对所有数据都感兴趣的,或者大部分情况下,他们只看前几页。 通常有以下...

    Oracle数据库中的索引管理技术.pdf

    (4)where 子句和索引:Oracle 根据用户在 where 子句中的定义找出满足查询要求的索引项(如根据一条 SQL 语句中的 where 和 and 部分指明的表列),检查可用的索引,选择能提供最快结果的索引。 (5)使用索引...

    sql优化,大数据量如何解决.docx

    Oracle的解析按照从上而下解析,因此表之间的连接必须写在where条件之前。 3. 通配符‘*’的使用 Sql在执行带通配符的语句时,如果‘%’在首位,那么在字段上建立的主键或者索引将会失效! 4. 使用truncate代替...

    Oracle 40 道面试题及答案.docx

    同时,需要避免更新索引数据列,因为索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序调整,会耗费相当大的资源。 5. SQL 优化语句方面的优化方法有多种,可以避免使用!=或操作符...

    SQL语句查询性能优化[借鉴].pdf

    1. WHERE 子句中的连接顺序,ORACLE 采用自下而上的顺序解析 WHERE 子句,根据这个原理,表之间的连接必须写在其它 WHERE 条件之前,那些可以过滤掉最大数量记录的条件必须写在 WHERE 子句的末尾。 2. 用 EXISTS ...

    SQl优化34条[参考].pdf

    ORACLE 采用自下而上的顺序解析 WHERE 子句,因此表之间的连接必须写在其他 WHERE 条件之前。那些可以过滤掉最大数量记录的条件必须写在 WHERE 子句的末尾。 (3)SELECT 子句中避免使用‘*’ ORACLE 在解析的过程...

    oracle 性能优化建议小结

    原则一:注意WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 尤其是“主键ID=?...

Global site tag (gtag.js) - Google Analytics