Odpowiedz na Twoje pytanie - Tak, kolejność stołu ma znaczenie przy dołączaniu.
Możesz również poinformować optymalizatora o planie wykonania.
Wskazówka ORDERED powoduje, że Oracle łączy tabele w kolejności, w jakiej występują w klauzuli FROM.
Na przykład ta instrukcja łączy tabelę TAB1 z tabelą TAB2, a następnie łączy wynik z tabelą TAB3:
SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
FROM TAB1, TAB2, TAB3
WHERE TAB1.COL1 = TAB2.COL1
AND TAB2.COL1 = TAB3.COL1;
Jeśli pominiesz wskazówkę ORDERED w instrukcji SQL wykonującej łączenie, optymalizator wybierze kolejność łączenia tabel. Możesz użyć podpowiedzi ORDERED, aby określić kolejność łączenia, jeśli wiesz coś o liczbie wierszy wybranych z każdej tabeli, której nie zna optymalizator. Takie informacje pozwolą ci wybrać tabelę wewnętrzną i zewnętrzną lepiej niż mógłby optymalizator.
Zwykle, jeśli analizujesz tabele, optymalizator wybiera efektywny plan gwiazdy. Możesz także skorzystać z podpowiedzi, aby ulepszyć plan. Najbardziej precyzyjną metodą jest uporządkowanie tabel w klauzuli FROM w kolejności kluczy w indeksie, z dużą tabelą na końcu. Następnie skorzystaj z następujących wskazówek:
/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */