370万行の削除は、各行を検索してからログに記録して削除するオーバーヘッドがあるため、非常に時間がかかります。すべてのダーティページ、ロギング、およびキャッシュミスについて考えるだけで、気が遠くなるようなものになります。インデックスの更新も言うまでもありません。
そのため、このようなものははるかに高速になる可能性があります:
create temporary table temp_n2p as
select n2p.*
from "target".name2phoneme n2p
where not exists (select 1
from delta.name2phoneme d
where n2p.NAME_ID = d.NAME_ID and
n2p.PHONEME_ID = d.PHONEME_ID
);
truncate table "target".name2phoneme;
insert into "target".name2phoneme
select *
from temp_n2p;
また、切り捨ての前にインデックスを削除し、後で再作成する必要があります。