2012年7月28日

Oracle数据库Where条件执行顺序 及Where子句的条件顺序对性能的影响

摘要: 1、Oracle数据库Where条件执行顺序:由于SQL优化起来比较复杂,并且还会受环境限制,在开发过程中,写SQL必须必须要遵循以下几点的原则: 1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效) SELECT … FROM EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’ AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO); (高效) SELE 阅读全文

posted @ 2012-07-28 17:25 け凨浩 阅读(5516) 评论(0) 推荐(0) 编辑

Oracle的优化器

摘要: 一、目的: 1、说一说Oracle的Optimizer及其相关的一些知识。 2、回答一下为什么有时一个表的某个字段明明有索引,当观察一些SQL的执行计划时,发现确不走索引的问题。 3、如果你对 FIRST_ROWS、 ALL_ROWS这两种模式有疑惑时也可以看一下这篇文章。Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。二、 1、优化器的优化方式: Oracle的优化器共有两种的优... 阅读全文

posted @ 2012-07-28 17:23 け凨浩 阅读(132) 评论(0) 推荐(0) 编辑

导航