`

oracle函数之exists和not exists用法详解

 
阅读更多

一、exists和in的效率问题:

1.select * from T1 where exists(select 1 from T2 where T1.A=T2.A);

2.select * from T1 where T1.A IN(select T2.A from T2);

T1数据量<<T2时,1的查询效率高;

T1数据量>>T2时,2的查询效率高;

 

用法:

exists(xxx)  就是判断括号中的语句能不能查找出记录,它要查找的记录是否存在;

通过使用exists,oracle会首先检查主键查询,然后运行子查询,知道它找到第一个匹配项,这就节省了时间。

oracle在执行IN子查询时,先执行子查询,并将获得的结果列放到一个临时表中(自动加索引)。在执行子查询前,系统先将主查询挂起,待子查询执行完毕,存放到临时表后再执行主查询。

 

exists和in使用场景:

a.能不用子查询尽量不要写子查询,而是直接编写多表连接操作。

b.in和exists的技术原理:

   in :先进行子查询,再进行主查询

   exists:先进行主查询,再到子查询中过滤

c.in和exists的使用建议:

   如果限制性特别强的条件在子查询,使用in

   如果限制性特别强的条件在主查询,使用exists

  采用优化匹配原则:拿最小记录匹配大记录。限制性强,则结果集小;

 

 

 

分享到:
评论

相关推荐

    oracle函数详解[收集].pdf

    Oracle函数详解涵盖了从基础操作到复杂查询的各个方面,理解和熟练运用这些函数和操作对于有效管理Oracle数据库至关重要。无论是数据查询、数据更新还是数据统计,都有相应的SQL语句和函数支持,使得数据处理变得...

    oracle中not exists对外层查询的影响详解

    在Oracle数据库中,`NOT EXISTS` 子句常用于查询中,以排除某些特定条件的记录。然而,它对查询性能的影响可能并不总是直观的,尤其是在涉及到外层查询时。本文将深入探讨`NOT EXISTS`如何影响外层查询,并通过示例...

    oracle函数详解

    根据提供的文件内容,可以看出文档主要涉及的是Oracle SQL的基础语法与函数使用详解。下面将对文档中的各个知识点进行详细的解释和扩展。 ### Oracle SQL基础语法与函数详解 #### 1. 基本运算符 在Oracle SQL中,...

    oracle学习之函数存储过程

    ### Oracle学习之函数与存储过程详解 #### 一、函数的定义及应用 函数在Oracle中主要用于执行特定的计算或逻辑处理,并返回一个结果。它们是数据库编程中的重要组成部分,可以提高代码的重用性和可维护性。 #####...

    Oracle语句规划详解

    ### Oracle语句规划详解 #### 一、Oracle语句优化的重要性 在数据库管理与开发过程中,优化Oracle SQL语句对于提升系统的整体性能至关重要。优化不仅仅意味着更快的数据查询速度,还能减少资源消耗,提高数据库...

    Oracle高级sql学习与练习

    2. EXISTS和NOT EXISTS子句通常用于子查询中,用以判断子查询返回的结果集是否为空。EXISTS子句在找到至少一条符合条件的记录时就会返回TRUE,而不关心具体有多少条符合条件的记录;相反,NOT EXISTS子句则用于判断...

    oracle性能优化技巧

    ### Oracle性能优化技巧详解 #### 一、Oracle优化器模式 在Oracle数据库中,优化器是决定查询执行计划的关键组件,其目标是最小化资源消耗并最大化查询性能。Oracle提供了三种主要的优化器模式:基于规则(RULE)...

    oracle优化建议34条

    ### Oracle优化建议34条详解 #### 1. 选择合适的驱动表(只在有物化视图的情况下) 在Oracle数据库查询中,选择正确的驱动表是优化查询性能的关键之一。通常,驱动表(driving table)应是那些具有较小基数(即不同...

    Oracle Sql 优化

    ### Oracle SQL 优化详解 #### 一、Oracle SQL优化的重要性 在系统开发初期,由于数据库数据量较小,可能不会明显感受到不同SQL语句编写方式带来的性能差异。然而,当系统投入实际应用,尤其是面对海量数据时,SQL...

    Oracle语句优化规则详解【技术文档】

    本文将深入探讨Oracle语句优化的规则和技术,旨在帮助开发者和DBA提升查询效率,降低资源消耗,实现数据库性能的最大化。 一、理解执行计划 Oracle在处理SQL语句时会生成一个执行计划,它定义了数据的检索方式。...

    oracle练习题39题(附个人编码答案)

    - `CREATE TABLE`语句用于创建表,`IF NOT EXISTS`用于检查表是否存在,避免重复创建。 - `TRUNCATE TABLE`用于清空表数据,但保留表结构。 - `INSERT INTO`语句用于向表中插入数据,提供了插入单行或多行数据的...

    oracle操作文档

    ### Oracle 查询优化基本准则详解 #### 一、引言 在数据库系统中,尤其是在大型企业级应用中,Oracle 数据库因其稳定性和强大的功能被广泛使用。然而,随着数据量的增长和业务复杂性的增加,如何有效地优化 Oracle ...

    oracle完全手册

    ### Oracle完全手册:掌握SQL函数的关键知识点 #### 核心知识点概述 《Oracle完全手册》是一本详尽的指南,旨在帮助读者快速掌握Oracle数据库的各种SQL函数,通过深入讲解SQL语句、函数、子句以及数据操作等方面的...

    oracle数据库开发面试必备

    ### Oracle数据库开发面试必备知识点详解 #### 一、Oracle SQL查询优化 1. **选择条件顺序**:在Oracle中,合理的顺序安排对于提高查询效率至关重要。例如,在`FROM`子句中,通常会将表(driving table)放在前面...

    ORACLE 面试题集锦

    【Oracle面试知识点详解】 在ORACLE面试中,面试官通常会从多个角度考察候选人的技能和知识,包括但不限于基础知识、SQL查询能力、数据库管理、性能优化以及问题解决能力。以下是一些重要的ORACLE面试知识点: 1. ...

    Oracle SQL优化.pdf

    相比之下,使用`NOT EXISTS`可以更早终止查询,提高效率。 #### 二、SQL语句性能优化策略 **1. 选用合适的ORACLE优化器** Oracle支持多种优化器,包括基于规则的优化器(RBO)和基于成本的优化器(CBO),选择合适的...

    oracle 性能调整 sql性能优化大全

    Oracle数据库性能调整与SQL性能优化是数据库管理员和开发人员日常工作中不可或缺的部分。Oracle数据库系统以其高效、稳定和可扩展性闻名,但同时也需要通过精心的调整和优化来确保最佳性能。以下是一些关键的知识点...

    ORACLE高效SQL书写规范

    ### ORACLE高效SQL书写规范详解 #### 一、书写格式规范 **1-1、大小文字及空格的统一** 为了提高SQL语句的可读性和执行效率,建议使用统一的大写或小写来书写SQL语句,并且避免不必要的空格。在ORACLE中,表名、...

Global site tag (gtag.js) - Google Analytics