`

驱动表的概念

 
阅读更多

http://www.itpub.net/thread-144375-1-1.html

驱动表是在使用多表嵌套连接时,会先全表扫描该驱动表,然后驱动表返回的结果集中一行一行去匹配被驱动表(可以利用索引),所以我们会选择小表做为驱动表,而被驱动使用索引进行连接。对于基于规则的优化系统,驱动表在FROM后是有次序设置的(最右边的是驱动表),而在基于成本的优化,ORACLE会选择最合适的驱动表。

 

 

The 'driving' table is the table we will join FROM -- that is JOIN TO other
tables.  For example, lets say you have the query:

select * from emp, dept where emp.deptno = dept.deptno;

In this case the driving table might be DEPT, we would fetch rows from DEPT in a
full scan and then find the rows in EMP that match.  DEPT is the driving table.

The choice of a driving table made using many factors.  For example, in the
above query if there was an index on DEPT(DEPTNO) but not EMP(DEPTNO), we would
probably use EMP as the driving table -- we would fetch rows from EMP and then
using the DEPT(DEPTNO) index -- find their matches in the DEPT table.  Table
sizes, cardinality of column values, and other things can affect the choice of a
driving table (eg: HINTS).

When using the Rule Based Optimizer -- the placement of tables in the FROM
clause is relevant.  We process the from clause from the RIGHT to the LEFT -- we
would tend to pick a driving table from the end of the FROM list.  There is a
hint in the Cost Based Optimizer to have this happen as well.

When using CBO -- the order of tables is not relevant (unless you hint it to
be).  We use the statistics and data dictionary to determine which table is best
to be used as the driving table.

 

 
分享到:
评论

相关推荐

    ORACLE执行计划的一些基本概念

    被探查表是相对于驱动表而言的,当驱动表的一行数据找到后,Oracle会在被探查表中查找匹配的行。被探查表通常是较大的表,且应有索引以提高连接效率。 7. **组合索引 (Concatenated Index)**: 组合索引由多个列...

    ORACLE数据库SQL优化---表连接类型.docx

    驱动表的数据首先被处理,而被驱动表的数据根据驱动表的结果进行匹配。此外,当有多个表时,优化器还需决定表与表之间的连接顺序,以达到最佳性能。 2. 表连接方法: Oracle支持四种主要的表连接方法: - 排序合并...

    Windows驱动编程视频教程-在驱动中使用链表

    - 链表基本概念的介绍 - Windows内核链表API的使用 - 创建和初始化链表的实例演示 - 插入和删除链表元素的实际操作 - 链表遍历及错误检查的技巧 - 驱动程序中链表应用案例分析 - 线程安全和并发控制的实践...

    学习笔记之钩住驱动程序导入表

    #### 钩住驱动程序导入表的基础概念 驱动程序在Windows系统中起着连接硬件和软件的关键作用,而导入表是驱动程序中用于存储外部函数地址的地方。当一个驱动程序需要调用其他DLL库中的函数时,它会通过导入表来获取...

    步进电机驱动板 含PCB图 原理图 BOM表

    总的来说,这个压缩包提供的资料涵盖了步进电机驱动板设计的全过程,从概念到实现,再到批量生产的准备。对于电子工程师来说,这是一个宝贵的资源,不仅可以学习步进电机驱动技术,还可以作为自己设计类似电路的参考...

    93 深入探索多表关联的SQL语句到底是如何执行的?(3).pdf

    当执行多表关联查询时,系统会先在一个驱动表(driver table)中根据WHERE条件筛选出一部分数据,随后对这部分数据进行循环处理,每一条数据都会被用来到其他被驱动表(driven table)中匹配数据。 假设有两个表...

    数据驱动的车身概念模型自动化三维建模.pdf

    传统设计方法通常耗时且效率不高,而数据驱动的车身概念模型自动化三维建模技术能够显著提高设计效率。 该技术的核心在于利用数据驱动的方式,从汽车侧视图提取信息,以实现车身概念模型的自动化三维建模。其过程...

    LED驱动芯片选择表

    本文将基于“LED驱动芯片选择表”这一主题,深入解析LED驱动芯片的关键参数、应用场合以及如何根据具体需求进行合理选择,帮助读者理解和掌握LED驱动芯片的相关知识。 ### LED驱动芯片的基本概念 LED驱动芯片是...

    正则表达式与LL(1)表驱动识别

    文件"袁洋-正则表达式与LL(1)表驱动识别"可能包含了如何将正则表达式转换为LL(1)文法,以及如何构建和使用LL(1)解析表的详细教程,可能涵盖了实例解析、错误处理策略以及优化技术等内容。学习这部分知识有助于深入...

    表驱动LL(1)语法分析程序.docx

    本篇将详细介绍表驱动的LL(1)语法分析程序的设计、实现及其关键概念。 1.1 目的与意义 设计一个表驱动的LL(1)语法分析程序旨在深化对预测分析法的理解,掌握如何构建和使用预测分析表。这一过程不仅锻炼了编程能力...

    表驱动LL(1)语法分析程序

    在编译原理中,表驱动LL(1)语法分析程序是一种用于解析源代码的有效方法。它的核心思想是通过构建预测分析表,根据当前输入符号和栈顶符号来决定下一步的解析动作。这个课程设计旨在让学生理解和实现这一解析技术,...

    全面分析uvc驱动

    文章中还提到了内核模块加载顺序的概念,通过定义宏 module_init(x),驱动模块会在内核启动时被加载。这些宏的使用实际上将模块入口函数注册到内核的 initcall 区域,并根据定义的不同级别(如本文中的6级)按照...

    操作系统概念答案第六版

    文件名列表中的"1--10.doc"、"13.doc"、"11.doc"、"12.doc"可能代表书中的章节练习答案,分别对应了书中的某些部分。这些文档可能涵盖了操作系统的主要主题,如进程管理、内存管理、文件系统、设备管理、调度算法、...

    Revit软件平台族和概念体量介绍.pptx

    2. **参照点**在概念设计中扮演关键角色,它们帮助定位、对齐和驱动几何图形。参照点有三种类型:基于主体的参照点、驱动点和自由点。基于主体的参照点与几何形状相关联,驱动点可以通过绘制样条曲线或使用已有参照...

    windows驱动开发技术详解-part2

     第2章 Windows操作驱动的基本概念  驱动程序被操作系统加载在内核模式下,它与Windows操作系统内核的其他组件进行密切交互。本章主 要介绍Windows操作系统内核的基本概念,同时还介绍应用程序和驱动程序之间的...

    gt928驱动代码和配置表

    开发者需要熟悉Linux内核驱动模型,理解中断处理、DMA传输、设备树等概念,以便编写出高效的驱动代码。在不同的平台上,驱动代码可能需要进行相应的适配,以适应不同的硬件接口和系统环境。 配置表则是驱动程序的...

    Windows驱动开发技术详解的光盘-part1

    本章主要介绍Windows操作系统内核的基本概念,同时还介绍应用程序和驱动程序之间的通信方法。  2.1 Windows操作系统概述  2.1.1 Windows家族  2.1.2 Windows特性  2.1.3 用户模式和内核模式  2.1.4 操作...

    网卡驱动注册到PCI总线过程的分析

    在Linux设备模型中,总线、设备和驱动是三个非常重要的概念。总线是处理器与一个或多个设备之间的通道,在设备模型中,所有的设备都通过总线相连。驱动则是使总线上的设备能够完成它应该完成的功能。 在系统中,有...

    VxWorks驱动程序设计

    VxWorks提供了iosDrvShow函数用于查看驱动程序表,以及devs函数用于查看设备列表,便于开发者管理和监控已加载的设备驱动程序和设备状态。 ### 轮询与中断处理 轮询和中断是两种常见的设备检测机制。轮询机制在...

    91 深入探索多表关联的SQL语句到底是如何执行的?(1).pdf

    优化器通过驱动表中已筛选出的数据来驱动对被驱动表的查询,这个过程可能会涉及到对被驱动表的多次访问,以便为驱动表的每条数据找到匹配的记录。 理解了这一核心原理后,我们再深入到多表关联的更复杂情况。例如,...

Global site tag (gtag.js) - Google Analytics