I'm still not sure why you need the GTT. Why can't you do everything in one query?
someone advised me to use minusDid they have some metrics to backup that assertion?
It some cases it may be better. For your insert, probably not. This insert:
select unique(A.EmpID, B.Skill) from Table A, Table B where A.Empid = B.Empid
MINUS
select unique(A.EmpID, B.Skill) from Table A, Table B where
A.Empid = B.Empid
and B.Skill in ('DBA')
accesses both tables twice. The not exists only uses each once.
I suspect the real problem is having so many inserting into the GTT though. I still don't see why you need this.
But rather than guess, measure! Get the execution plan for the not exists query and the minus and compare. For instructions on how to do this, see:
https://blogs.oracle.com/sql/entry/how_to_create_an_execution