を使用して参加するこれらの二つの文の間に何らかの違いがある:私は専門家ではなく文の2じゃない違いが参加し、選択
-- Statement 1:
SELECT *
FROM Table1 t1
LEFT OUTER JOIN TABLE2 t2 on t1.id = t2.id
と
-- Statement 2:
SELECT *
FROM Table1 t1
LEFT OUTER JOIN (SELECT id, a, b, c FROM Table2) t2 on t1.id = t2.id
だけのような貧弱に見えますSQLを書いて、それははるかに時間がかかるようです。私はコードブロックを最適化しようとしており、2番目のような多くの結合があります。彼らは技術的に同じですか、私は標準のjoin文1に置き換えることができますか?
ありがとうございます!
ps。これはOracleであり、何百万行もの行を処理しています。
PSS。私は彼らが同じであるかどうか、そして時差があるかどうかを知るために私自身の探偵仕事をしています。専門家が技術的な違いがあるかどうかを説明することを望んでいました。
Table2に4つ以上の列がある場合、ステートメント2は結果セットを制限するだけです。少ないデータ量で読み込みが速くなるはずです。 – DVJex
説明プランはあなたの友人です。 – sstan
@DVJex:2番目の列は列の数だけを制限しますが、行の数は制限しません。 –