1
サブクエリの結果に基づいていくつかの結果を返したいと思います。
例'ここで'重複しているか 'distinct distinct'を選択してください - パフォーマンス
select *
from some_table
where my_column in (select /* distinct? */ my_column from some_table_2)
これは何か返します
-- subquery
select /*distinct?*/ my_column from some_table_2;
場合
:意味を持たないかもしれない
| MY_COLUMN
1 | 25
2 | 25
3 | 54
...
この例が、それは私のポイントを提示します。
私が間違っていない場合、これらの2つのステートメントはまったく同じです。 Oracleは最初のものを2番目のものに再書き込みします(11.2gでテスト済みhttp://sqlfiddle.com/#!4/4a9b0/2と2番目のOracle Live SQLで)計画ハッシュ値は同じ – LauDec
@LauDec。 。 。私はそれが利用可能なインデックスに依存すると思います。同じ実行計画が必要ではない状況があり、Oracleにはかなりスマートなオプティマイザがあります。 –