I have a wee database server which regularly tries to insert 1.5 million or even 15 million new rows into a 400 million row table. Sometimes these inserts take hours.
The actual query to produces the join is fast. It's the insert which is slow.
INSERT INTO File (FileIndex, JobId, PathId, FilenameId, LStat, MD5, DeltaSeq)
SELECT batch_testing.FileIndex, batch_testing.JobId, Path.PathId, Filename.FilenameId, batch_testing.LStat, batch_testing.MD5, batch_testing.DeltaSeq
FROM batch_testing JOIN Path ON (batch_testing.Path = Path.Path)
JOIN Filename ON (batch_testing.Name = Filename.Name);
This gist contains postgresql.conf, zfs settings, slog, disk partitions.
https://gist.github.com/dlangille/33331a8c8cc62fa13b9f
I'm tempted to move it to faster hardware, but in case I've missed something basic...
Thank you.
--
Dan Langille - BSDCan / PGCon