Menghapus 3,7 juta baris sangat memakan waktu, karena overhead mencari setiap baris dan kemudian logging dan menghapus baris. Memikirkan semua halaman kotor, pencatatan log, dan cache yang terlewatkan saja sudah membingungkan -- belum lagi pembaruan pada indeks juga.
Oleh karena itu, hal seperti ini bisa lebih cepat:
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;
Anda juga harus menghapus indeks sebelum pemotongan dan kemudian membuatnya kembali setelahnya.