Hi, everybody
I took measurements of the performance of the modes at home and received
data corresponding to the data of the patch author. All measurements were
performed in the single transaction mode S (default mode). I took five
measurements each and got the average. I took measurements at the WSL.
------------------------------------------------
[ Client / Text mode ]
pgbench -i -Idtg -s1000
average table creation: 144.188 s
[ Client / Binary mode ]
pgbench -i -Idtc -s1000
average table creation: 105.914 s
[ Server / generate_series ]
pgbench -i -IdtG -s1000
average table creation: 265.912 s
[ Server / Unnest ]
pgbench -i -IdtU -s1000
average table creation: 279.508 s
------------------------------------------------
I also took measurements on a simple Linux machine available to me.
------------------------------------------------
[ Client / Text mode ]
pgbench -i -Idtg -s1000
average table creation: 130.524 s
[ Client / Binary mode ]
pgbench -i -Idtc -s1000
average table creation: 105.29 s
------------------------------------------------
In my measurements, binary mode turned out to be about 25% more productive.
Unnest mode is slightly slower than generate_series. Although WSL is not
the best environment for testing, it was the closest option at hand.
Measurements on a separate Linux machine confirmed the results. The overall
performance changes correspond to the author's measurements.
Best regards,
Egor