During recent tuning of the TPC-C workload, I produced the following patch to force COPY to leave some space in each data block when it loads data into heap relations.
I can't get too excited about incorporating changes designed solely to improve performance for the workload of a specific database benchmark. If the change has merit in some plausible "real world" situations, so be it -- but if not, I don't see the point.
Each UPDATE tries to insert a new row version. The blocks are all full, so each UPDATE causes this activity: read block, decide cannot insert, unlock block extend relation by 1 block relock first block, lock new block insert row into new block After the patch, most UPDATEs cause only a single block access/update, excluding the index effects.
Did you do any benchmarks to measure the performance of the patch?
-Neil
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend