How much data is there total in each table?
What percentage of all rows returned will be in the result set?
What does the Explain Plan access paths reveal for each example?
What are your benchmark times for each (which performs better - wall clock)?
Are indexes worth the while (based on total rows returned in the result set) or SORTMERGE after full scans?
I feel , using a dirct join comparison is better that using in clause ( reason could be based on the algoritham it follows for obvious reasons , it does lot of permutations in IN CLAUSE ) . u can check the same command on two different times by setting the clock on on your sqlplus . after clearing the sql parse )