This document explains how the join order in FROM clause of report SQL affects SQL execution performance. For example, will "A join B on A.c1=B.c2" give the same performance as "B join A on A.c1=B.c2"?
To fully understand this, understanding of query plan (explain plan) is required. After database server receives a SQL statement request, it will parse the SQL statement, and generate a query plan about how to execute the SQL and get the results back. The query plan is generated by query optimizer in the database server.
A query plan usually contains the following:
For Nested Loop join, "A join B" will out-perform "B join A", if A is much smaller than B and B is indexed. But it's up to the database side (query optimizer) to decide how to do the acutal join, and a good query optimizer with accurate statistics will try to find an optimal query plan. In other words, even if the SQL is submitted as "B join A", a good query optimizer will generate a query plan that will do "A nested loop join B", which will yield the same result as the SQL as "A join B".
Therefore, the best way to tune the SQL execution performance is to analyze the query plan on the database side, and check the database settings/parameters (such as the ones related to table indexes, statistics generation, etc).