Odpověď na vaši otázku - Ano, pořadí stolu rozhoduje o připojení.
Můžete také informovat optimalizátor o plánu provádění.
Nápověda ORDERED způsobí, že Oracle spojí tabulky v pořadí, ve kterém jsou uvedeny v klauzuli FROM.
Tento příkaz například spojí tabulku TAB1 s tabulkou TAB2 a poté připojí výsledek k tabulce TAB3:
SELECT /*+ ORDERED */ TAB1.COL1, TAB2.COL2, TAB3.COL3
FROM TAB1, TAB2, TAB3
WHERE TAB1.COL1 = TAB2.COL1
AND TAB2.COL1 = TAB3.COL1;
Pokud z příkazu SQL provádějícího spojení vynecháte nápovědu ORDERED, optimalizátor vybere pořadí, ve kterém se mají tabulky spojit. Pokud víte o počtu řádků vybraných z každé tabulky něco, co optimalizátor nezná, můžete použít nápovědu ORDERED k určení pořadí spojení. Takové informace by vám umožnily vybrat vnitřní a vnější tabulku lépe než optimalizátor.
Obvykle, pokud analyzujete tabulky, optimalizátor vybere efektivní hvězdicový plán. Ke zlepšení plánu můžete použít také rady. Nejpřesnější metodou je seřadit tabulky v klauzuli FROM v pořadí klíčů v indexu, přičemž velká tabulka je poslední. Potom použijte následující rady:
/*+ ORDERED USE_NL(FACTS) INDEX(FACTS FACT_CONCAT) */