oracle连接多个扫描
假如你对一个列和一组有限的值举办较量,优化器也许执行多次扫描并对功效举办归并毗连. 举例: ??? 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) (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |