あなたの質問への答え-はい、テーブルの順序は結合に違いをもたらします。
オプティマイザに実行プランについて知らせることもできます。
ORDEREDヒントにより、OracleはFROM句に表示される順序でテーブルを結合します。
たとえば、このステートメントは、テーブルTAB1をテーブルTAB2に結合してから、結果をテーブルTAB3に結合します。
SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
FROM TAB1, TAB2, TAB3
WHERE TAB1.COL1 = TAB2.COL1
AND TAB2.COL1 = TAB3.COL1;
結合を実行するSQLステートメントからORDEREDヒントを省略すると、オプティマイザーはテーブルを結合する順序を選択します。オプティマイザーが知らない、各テーブルから選択された行の数について何か知っている場合は、ORDEREDヒントを使用して結合順序を指定することをお勧めします。このような情報により、オプティマイザーよりも内側と外側のテーブルをより適切に選択できます。
通常、テーブルを分析する場合、オプティマイザーは効率的なスタープランを選択します。ヒントを使用して計画を改善することもできます。最も正確な方法は、FROM句のテーブルをインデックスのキーの順序で並べ、大きなテーブルを最後にすることです。次に、次のヒントを使用します。
/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */