Steve Clark <sclark@xxxxxxxxxxxxx> writes: > explain insert into myevents select * from t_unit_event_log a where exists > (select b.event_log_no from myevents b > where a.event_status = 1 and a.event_ref_log_no IS NOT NULL > and a.event_ref_log_no = b.event_log_no and a.event_log_no not in > (select event_log_no from myevents) > ) Consider testing the conditions on A at the top level, instead of redundantly checking them inside the sub-query on B. I'm not certain exactly how much that's hurting you (EXPLAIN ANALYZE output would've been more informative), but it can't be good. regards, tom lane