表加入效率问题

Ste*_*ven 3 oracle performance

在跨表连接时(如下面的示例所示),在连接表或加入仅包含所需列的子查询之间是否存在效率差异?

换句话说,这两个表之间的效率是否存在差异?

SELECT result
  FROM result_tbl
  JOIN test_tbl                    USING (test_id)
  JOIN sample_tbl                  USING (sample_id)
  JOIN (SELECT request_id
          FROM request_tbl
         WHERE request_status='A') USING(request_id)
Run Code Online (Sandbox Code Playgroud)

VS

SELECT result
  FROM (SELECT result,  test_id   FROM result_tbl)
  JOIN (SELECT test_id, sample_id FROM test_tbl)   USING(test_id)
  JOIN (SELECT sample_id          FROM sample_tbl) USING(sample_id)
  JOIN (SELECT request_id
          FROM request_tbl
         WHERE request_status='A')                 USING(request_id)
Run Code Online (Sandbox Code Playgroud)

Ton*_*ews 5

确定的唯一方法是在打开跟踪的情况下运行两者,然后查看跟踪文件.但很可能它们将被视为相同:优化器将所有内联视图合并到主语句中并提出相同的查询计划.