So, habe mal die Abfragen von Jasper unter FireBird nachgestellt und den Paln mit ausgegeben. Scheinbar gibt es da wirklich keine Unterschiede, egal wie die Joins definiert werden. Ich denke danit sollte es gut sein, oder?

Code:
/* SAMPLE 1 */
SQL> select count(*) 
 from f, d1, d2, d3;

PLAN JOIN (F NATURAL,D1 NATURAL,D2 NATURAL,D3 NATURAL)

       COUNT
============

         108

/* SAMPLE 2 */
SQL>  select count(*) 
  from f join d1 on f.d1_id = d1.id 
         join d2 on f.d2_id = d2.id 
         join d3 on f.d3_id = d3.id;

PLAN JOIN (F NATURAL,D3 INDEX (D3_KEY),D1 INDEX (D1_KEY),D2 INDEX (D2_KEY))

       COUNT
============

           4


/* SAMPLE 3 */
SQL> select count(*) 
   from f,d1,d2,d3 
   Where f.d1_id=d1.id 
     and f.d2_id=d2.id 
     and f.d3_id=d3.id;

PLAN JOIN (F NATURAL,D3 INDEX (D3_KEY),D1 INDEX (D1_KEY),D2 INDEX (D2_KEY))

       COUNT
============

           4
Hans