Linc\EAE used profiles for their queries. Well the profile information is used by our migration tool to generate indexes.
In Java is easy to intercept all SQL statements used by the translated application and analyze them.
To analyse how a query is executed you have to study its explain plan. For go here an excellent guide on EXPLAIN PLAN.
After you read that page, you will find useful the following function, that will shorten the lines that you have to type to see the explain plan:
create OR REPLACE function ShowPlan return sys_refcursor
as
c_test sys_refcursor;
BEGIN
open c_test for select
substr (lpad(' ', level-1) || operation || ' (' || options || ')',1,30 ) "Operation",
object_name "Object"
from
sys.plan_table$ start with id = 0 connect by prior id=parent_id;
return c_test;
END;
SQL>
explain plan for select * from MY_TABLE
SQL> variable rc refcursor
SQL> exec :rc := testfunc()
PL/SQL procedure successfully completed.
SQL> print rc
Operation Object
------------------------------ ------------------------------
SELECT STATEMENT ()
TABLE ACCESS (FULL) MY_TABLE