Handling large DB tables that have millions of records
You can try this:

create table Table3 as (select * from Table1 A where 
exists(select * from Table2 B where A.key=B.key));


And then delete from Table2 using newly created table Table3    

delete from Table2 A where exists(select * from Table3 B where A.key=B.key);