《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一2.2 内部函数与操作

简介: 本节书摘来自华章出版社《Oracle高性能SQL引擎剖析:SQL优化与调优机制详解》一 书中的第2章,第2.2节,作者:黄玮,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 内部函数与操作

实际上,在Oracle内部,执行计划的每一个数据源(Row Source)操作都与一个内部函数(qer<*>)相对应,而操作对象、谓词条件都是这些函数的参数。这些函数之间可以相互调用,也正是这些函数的调用关系,映射成为执行计划的树状关系。换句话说,一个执行计划告诉Oracle的内部引擎如何调用这些函数,以及传给函数的参数值。
例如,在上述例子中,NESTED LOOPS获取数据的内部函数是qerjoFetch;TABLE ACCESS BY INDEX ROWID的内部函数是qertbFetchByRowID;INDEX UNIQUE SCAN的内部函数是qerixFetchUniqueIndex;TABLE ACCESS FULL的内部函数是qertbFetch。
从这个意义上来说,我们可以将一个执行计划视为一段伪代码或者一段解释型语言的代码,SQL执行引擎则负责解释和执行该段代码。
基本上,在Oracle内部,所有“qer”前缀的函数都属于数据源操作模块的函数,而根据它们操作对象和方式不同,又可以分为多个不同的子模块。大部分数据源函数模块见表2-1。

screenshot
screenshot
screenshot
screenshot

但是,要注意的是,执行计划操作所映射的函数并非是完成SQL语句执行过程的全部函数。SQL引擎在执行SQL语句时,除了需要知道调用哪些函数进行数据源操作以外,还需要知道如何进行其他相关操作,例如私有内存的使用,以及所有这些操作的上下文(Context)数据。而所有这些信息都存储在SQL区(SQL Area)当中。在每个游标的内存当中,它们都存放在Heap6中。

相关文章
|
22天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
11天前
|
DataWorks Oracle 关系型数据库
DataWorks操作报错合集之尝试从Oracle数据库同步数据到TDSQL的PG版本,并遇到了与RAW字段相关的语法错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 0
|
12天前
|
SQL 关系型数据库 分布式数据库
数据管理DMS操作报错合集之DMS SQL执行失败且无法看到原因,如何解决
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
23小时前
|
Oracle 关系型数据库 Java
java操作多数据源将oracle数据同步达梦数据库
java操作多数据源将oracle数据同步达梦数据库
|
5天前
T-sql 高级查询( 5*函数 联接 分组 子查询)
T-sql 高级查询( 5*函数 联接 分组 子查询)
|
11天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在DataWorks中使用ODPS SQL时遇到"该文件对应引擎实例已失效,请重新选择可用的引擎实例"的错误提示”,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
33 0
|
12天前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之在sql 里嵌套查询时,查询条件带有instr时报错,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
16天前
|
SQL 数据库
[AIGC] SQL中的数据添加和操作:数据类型介绍
[AIGC] SQL中的数据添加和操作:数据类型介绍