`
heavenslv
  • 浏览: 82291 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL优化 ----- WHERE 子句中的连接顺序

阅读更多

ORACLE 采用自下而上的顺序解析WHERE 子句,根据这个原理,表之间的连接必须写在其他

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’;
 
分享到:
评论

相关推荐

    18 SQL优化--其他SQL的优化.doc

    根据提供的文档标题、描述、标签以及部分内容,我们可以深入探讨关于SQL优化的相关知识点,特别是针对MySQL中的表分析、检查、优化以及其他SQL语句的优化策略。 ### 表分析、检查与优化 #### 表分析(Analyze ...

    SQL优化-索引word19页

    2. 常用查询列:针对经常出现在WHERE子句中的列创建索引,以优化查询性能。 3. 避免过度索引:过多的索引会增加数据库维护成本,应根据实际需求谨慎创建。 四、索引的维护与监控 1. 统计信息更新:定期更新统计信息...

    sql优化-oracle数据库.ppt

    《SQL优化——Oracle数据库》 SQL优化是提升数据库性能的关键技术,主要目标是减少数据操作所需的资源(如I/O和CPU)以及时间,以达到最大数据吞吐量和快速响应。Oracle数据库作为广泛使用的数据库系统,其SQL优化...

    SQL优化-索引

    4. **避免使用NULL**:NULL值不能被索引,因此在WHERE子句中使用`IS NULL`或`IS NOT NULL`会导致索引失效。 5. **IN与EXISTS**:使用`EXISTS`通常比使用`IN`更高效,尤其是在大数据量的情况下。 6. **格式转换**:在...

    oracle_sql 优化-举例.pdf

    在Oracle数据库中,SQL查询的优化涉及到多个方面,包括选择正确的表连接顺序、明智地安排WHERE子句的条件、避免使用通配符以及减少对数据库的访问次数。以下是对这些优化技巧的详细解释: 1. **选择最有效率的表名...

    OracleSQL优化-中级篇.rar

    通过调整WHERE子句中的条件顺序,使用JOIN的适当类型(如INNER JOIN,LEFT JOIN等),以及避免全表扫描,可以显著提高查询速度。 2. 索引优化:索引是加快数据检索的关键。Oracle支持多种类型的索引,如B树索引、...

    T-SQL中where子句与having子句的对比分析.pdf

    在 SELECT 语句中,FROM 子句指定了要操作的表或视图,WHERE 子句用来对数据进行筛选,GROUP BY 子句将数据进行分组,HAVING 子句对分组后的结果进行筛选,最后 ORDER BY 子句将结果按照指定的顺序进行排序。...

    SQLAdvisor-2.0.tar.gz

    3. **查询优化**:工具能识别出可简化或重构的查询语句,比如消除不必要的子查询,使用更高效的连接方式,或优化WHERE子句中的条件顺序。 4. **性能报告**:生成详细的性能报告,包括查询时间、I/O消耗、CPU使用等...

    oracle优化-SQL优化

    2. RBO主要根据Oracle内部预定的一些规则来优化SQL语句,比如当where子句中的一列有索引时,优化器会选择走索引。 3. CBO考虑的是语句的代价,即CPU和内存的消耗。优化器会根据表和索引的统计信息来判断是否采用CBO...

    Oracle 性能优化之 SQL优化

    2. **WHERE子句中的连接顺序** - Oracle采用自下而上的顺序解析WHERE子句,因此表之间的连接条件应当位于WHERE子句的前面,而过滤条件则应放在后面。这样可以最大限度地减少不必要的数据处理。 3. **SELECT子句...

    sql优化的几种方法

    #### 二、优化WHERE子句中的条件顺序 Oracle数据库在处理WHERE子句时,遵循自下而上的原则。因此,表之间的连接条件应放在WHERE子句的前面,而那些能够过滤掉大量记录的条件则应放在WHERE子句的末尾。这种排序方式...

    oracle SQL优化技巧

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

    DB2之SQL优化浅析.pdf

    - 外关联时,ON子句只包含关联条件,内部条件放在WHERE子句中。 4. **有效利用执行计划** - 通过db2expln工具查看SQL执行计划,了解SQL的成本消耗,为优化提供参考。 - 重点关注执行计划中的消耗指标,如...

    SQL优化经验总结34条.pdf

    #### 二、WHERE子句中的连接顺序 - **要点**: Oracle从下至上解析WHERE子句。为了提高效率,连接条件应该在其他WHERE条件之前出现,并且将能够过滤掉最多记录的条件放在WHERE子句的末尾。 - **实践**: 考虑到连接...

    sql优化规则详解(一些小总结)

    2. **WHERE子句的连接顺序**:Oracle从下到上解析WHERE条件,所以应将能够过滤最多记录的条件放在最后,以减少数据扫描的范围。 3. **避免在SELECT子句中使用通配符'*'**:使用'*'会导致Oracle解析所有列,增加解析...

    Oracle-SQL优化.docx

    在优化 SQL 语句时,需要注意 WHERE 子句中的连接顺序。不同的连接顺序可以带来不同的优化效果。 2.6 SELECT 子句中避免使用 ‘ *’ 在优化 SQL 语句时,需要注意 SELECT 子句中避免使用 ‘ *’。使用 ‘ *’ 可能...

    SQL--server 学习课件

    1. SELECT语句:用于从表中检索数据,可以使用WHERE子句过滤结果,GROUP BY和HAVING子句进行分组和条件过滤。 2. INSERT语句:向表中插入新的记录。 3. UPDATE语句:更新现有记录的数据。 4. DELETE语句:从表中删除...

    sql优化经验总结

    6. **SQL语句重构**:简化复杂的SQL语句,避免在WHERE子句中使用计算表达式,或者将多次数据库访问合并为一次,都可以提升性能。 7. **绑定变量**:使用绑定变量可以避免硬解析,从而减少解析开销并改善并发性能。 ...

    SQL优化34条.pdf

    #### 二、WHERE子句中的连接顺序 **知识点:** Oracle采用自下而上的顺序解析`WHERE`子句。因此,表之间的连接条件应当写在其他`WHERE`条件之前,而那些能够过滤掉最大数量记录的条件应当放在`WHERE`子句的末尾。 ...

Global site tag (gtag.js) - Google Analytics