Performance tuning across two tables using indexes? Let say I have two tables and a SQL query like this

SELECT table_a.*, table_b.*
FROM table_a, table_b
WHERE table_a.id = ?
AND table_b.col_x = table_a.col_x
AND table_b.id = table_a.id;


Would there be any performance improvement by rewriting the SQL query to JOIN   

SELECT table_a.*, table_b.*
FROM table_a
JOIN table_b on (table_b.id = table_a.id AND table_b.col_x = table_a.col_x)
WHERE table_a.id = ?;


Assuming that the tables have these current INDEXES

--table_a
create index table_a_index_z_id on table_a (col_z, id);

--table_a
create index table_a_index_x on table_a (col_x);

--table_b
create index table_b_index_id on table_b (id);


What extra indexes if any would improve the performance of the queries above? 

EDIT

The primary keys for the tables are 

alter table table_a add (constraint table_a_pk primary key (id, col_b, col_x))
// there is no PK on table_b
Your first query is also a JOIN, only using the 'old' ANSI-89 syntax, instead of the explicit JOIN clause which was introduced in ANSI-92. 

Most DBMS should treat both queries as equivalent, but you should check with your specific engine by executing both and examining the execution plan.

With regard to indexing, I would recommend that you try a composite index on (id, col_x) for both tables.
I would also try and add a predicate to the WHERE clause:

WHERE table_a.id = ? AND table_b.id = ?


Even though this is logically redundant, and will not change the output as the join already filters out rows where the id is not the same, some query optimizers tend to better use indexes when the predicate is explicit and not implied, as they lack the logic to infer that. Check the execution plan, and you will know.

Happy holidays!