mybatis 中调用java方法 mybatis调用oracle函数_mybatis 中调用java方法


记录内部函数与数据源操作(数据源操作与函数模块映射关系)

最近阅读黄玮新书《Oracle高性能SQL引擎剖析》,其中第二章第二小节《内部函数与操作》里介绍了数据源操作和函数模块映射关系,为以后查看方便,记录在此。

在Oracle内部,执行计划的每一个数据源(Row Source)操作都与一个内部函数(qer<*>)相对应,而操作对象、谓词条件都是这些函数的参数。这些函数之间可以相互调用,也正是这些函数的调用关系,映射成为执行计划的树状关系。换句话说,一个执行计划告诉Oracle的内部引擎如何调用这些函数,以及传给函数的参数值。

从这个意义上来说,我们可以将一个执行计划视为一段伪代码或者一段解释型语言的代码,SQL执行引擎则负责解释和执行该段代码。

基本上,在Oracle内部,所有“qer”前缀的函数都属于数据源操作模块的函数,而根据它们操作对象和方式不同,又可以分为多个不同的子模块。

数据源操作与函数模块映射关系

模块(前缀) 数据源操作

qerae And-Euqal 操作

qerba 位图索引(BITMAP INDEX)AND操作

qerbc 位图索引(BITMAP INDEX)压缩操作

qerbi 位图索引(BITMAP INDEX)创建操作

qerbm 数据集MINUS操作

qerbo 位图索引(BITMAP INDEX)OR操作

qerbt 位图与ROWID转换操作

qerbu 位图索引(BITMAP INDEX)无限制OR(执行星形查询调用)操作

qerbx 位图索引(BITMAP INDEX)访问

qercb 层次查询(CONNECT BY)操作

qercbi 层次查询(CONNECT BY)额外支持操作

qerco 计数(COUNT)操作

qerdl 删除(DELETE)操作

qerep 爆发(EXPLOSION,执行GROUP BY CUBE调用)操作

qerff 内存先进先出(FIFO)操作

qerfi 首条记录(FIRST ROW)访问操作

qerfl 过滤(FILTER)定义操作

qerfu 用于更新(FOR UPDATE)操作

qerfx 固化表(FIXED TABLE)访问操作

qergi 粒度迭代(GRANULE ITERATOR)操作

qergr 分组归纳(GROUP BY ROLLUP)操作

qergs 排序分组(GROUP BY SORT)操作

qerhc 哈希簇(HASH CLUSTER)访问操作

qerhj 哈希关联(HASH JOIN)操作

qeril IN列举(IN-LIST)操作

qerim 索引维护(INDEX MAINTENACNE)操作

qerix 索引(INDEX)访问操作

qerjo 关联(JOIN)操作

qerle 实施数据源的线性执行(LINEAR EXECUTION)

qerli 并行创建索引

qerlt 填充表(POPULATE TABLE,执行追加插入调用)操作

qerns 无排序分组(GROUP BY NO SORT)操作

qeroc 对象收集迭代(OBJECT COLLECTION ITERATOR)操作

qeroi 可扩展索引(EXTENSIBLE INDEX,如域索引“DOMAIN INDEX”)查询操作

qerpa 分区(PARTITION)操作

qerpf 执行预提取(PREFETCH)操作

qerpx 执行并行(PARALLEL)操作

qerrm 远程(REMOTE)访问操作

qerse 实现数据集合(SET)

qerso 排序(SORT)操作

qersq 序列(SEQUENCE)操作

qerst 运行统计(STATISTICS)

qertb 表(TABLE)访问操作

qertq 表队列(TABLE QUEUE)操作,分为入列(qertqi)和出列(qertqo)

qerua 全部联合(UNION-ALL)操作

qerup 更新(UPDATE)操作

qerus 更新插入(UPSERT,执行MERGE调用)操作

qervw 视图(VIEW)访问操作

qerwn 窗口(WINDOW)操作

qerxt 外部表(EXTERNAL TABLE)访问操作

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

声明:版权归原作者所有。