Důvodů je vlastně celá řada, ale ty hlavní jsou:
-
Klientské aplikace obvykle čekají na potvrzení jednoho
INSERT
před odesláním dalšího. Takže pro každýINSERT
existuje zpoždění , zpoždění plánování atd. (PgJDBC podporuje zřetězeníINSERT
s v dávkách, ale nejsem si vědom žádných jiných klientů, kteří to dělají). -
Každý
INSERT
musí projít celým exekutorem. Použití připraveného příkazu obchází potřebu spouštět analyzátor, přepisovač a plánovač, ale stále existuje stav exekutora, který lze nastavit a odstranit pro každý řádek.COPY
provede nějaké nastavení jednou a má extrémně nízká režie pro každý řádek, zejména tam, kde nejsou zapojeny žádné spouštěče.
První bod je nejvýznamnější. Je to všechno o zpátečních cestách sítě a přeplánování zpoždění.