加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 站长百科 > 正文

oracle连接多个扫描

发布时间:2021-01-21 09:16:30 所属栏目:站长百科 来源:网络整理
导读:如果你对一个列和一组有限的值进行比较,优化器可能执行多次扫描并对结果进行合并连接. 举例: ??? SELECT * ??? FROM LODGING ??? WHERE MANAGER IN (‘BILL GATES’,’KEN MULLER’); ??? 优化器可能将它转换成以下形式 ??? SELECT * ??? FROM LODGING ??? W

如果你对一个列和一组有限的值进行比较,优化器可能执行多次扫描并对结果进行合并连接.

举例:

??? SELECT *

??? FROM LODGING

??? WHERE MANAGER IN (‘BILL GATES’,’KEN MULLER’);

??? 优化器可能将它转换成以下形式

??? SELECT *

??? FROM LODGING

??? WHERE MANAGER = ‘BILL GATES’

??? OR MANAGER = ’KEN MULLER’;

??? 当选择执行路径时,优化器可能对每个条件采用LODGING$MANAGER上的索引范围扫描. 返回的ROWID用来访问LODGING表的记录 (通过TABLE ACCESS BY ROWID 的方式). 最后两组记录以连接(CONCATENATION)的形式被组合成一个单一的集合.

Explain Plan :

SELECT STATEMENT Optimizer=CHOOSE

?? CONCATENATION

????? TABLE ACCESS (BY INDEX ROWID) OF LODGING

???????? INDEX (RANGE SCAN ) OF LODGING$MANAGER (NON-UNIQUE)

?? ??TABLE ACCESS (BY INDEX ROWID) OF LODGING

???????? INDEX (RANGE SCAN ) OF LODGING$MANAGER (NON-UNIQUE)

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读