oracle连接多个扫描

oracle连接多个扫描,第1张

概述如果你对一个列和一组有限的值进行比较, 优化器可能执行多次扫描并对结果进行合并连接. 举例:     SELECT *     FROM LODGING     WHERE MANAGER IN (‘BILL GATES’,’KEN MULLER’);     优化器可能将它转换成以下形式     SELECT *     FROM LODGING     WHERE MANAGER = ‘BIL

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

举例:

    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)

总结

以上是内存溢出为你收集整理的oracle连接多个扫描全部内容,希望文章能够帮你解决oracle连接多个扫描所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1163766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存