いいえ。Oracle は、他の適切なリレーショナル データベースと同様に、集合ベースの操作を実行したり、結合を手続き的にエミュレートしたりするよりも効率的です (たとえば、ネストされたカーソル ループを使用)。
ただし、結合がないコードについて話しているわけではないと思います。私の推測では、慣れ親しんでいるものとは異なる結合構文を使用するコードについて話していると思います。両方
SELECT a.* FROM a JOIN b ON (a.a_id = b.a_id) JOIN c ON (b.b_id = c.b_id)
プレ>そして
SELECT a.* FROM a, b, c WHERE a.a_id = b.a_id AND b.b_id = c.b_id
プレ>
a
を結合するクエリですb
へc
へ . 2 つのクエリはまったく同じです。Oracle パーサーは、実際には最初のクエリを 2 番目のクエリに内部的に書き換えます。唯一の違いは、最初のクエリが新しい SQL 99 構文を使用してその結合を指定することです。歴史的に見て、Oracle は SQL 99 構文を採用するのが比較的遅く、SQL 99 構文が利用可能になる前に書かれた膨大な量のコードがあり、かなりの数の Oracle 関係者は、少なくとも習慣から古いスタイルの構文を好みます。これらすべての理由から、古い結合構文のみを使用する Oracle ベースのプロジェクトを見つけることは比較的一般的です。本質的に問題はありません (個人的には新しい構文の方が好きですが)。