--On Dienstag, Mai 05, 2009 10:00:37 -0400 Tom Lane <tgl@sss.pgh.pa.us>
wrote:
>
> Seems like the right response might be some micro-optimization effort on
> byteaout.
Hmm looking into profiler statistics seems to second your suspicion:
Normal COPY shows:
% cumulative self self totaltime seconds seconds calls s/call s/call name31.29
81.38 81.38 134487 0.00 0.00 CopyOneRowTo22.88 140.89 59.51 134487 0.00 0.00
byteaout13.44 175.84 34.95 3052797224 0.00 0.00
appendBinaryStringInfo12.10 207.32 31.48 3052990837 0.00 0.00 CopySendChar 8.45 229.31 21.99
3052797226 0.00 0.00 enlargeStringInfo 3.90 239.45 10.14 55500 0.00 0.00 pglz_decompress 3.28
247.97 8.52 3 2.84 2.84 appendStringInfoChar 1.82 252.71 4.74 134489 0.00 0.00
resetStringInfo1.72 257.18 4.47 copy_dest_destroy 0.27 257.89 0.71 5544679
0.00 0.00
hash_search_with_hash_value 0.09 258.13 0.24 13205044 0.00 0.00 LWLockAcquire 0.08 258.35 0.22
13205044 0.00 0.00 LWLockRelease
COPY BINARY generates:
time seconds seconds calls s/call s/call name73.70 9.05 9.05 55500 0.00 0.00
pglz_decompress6.03 9.79 0.74 5544679 0.00 0.00
hash_search_with_hash_value 2.93 10.15 0.36 13205362 0.00 0.00 LWLockAcquire 1.87 10.38 0.23
13205362 0.00 0.00 LWLockRelease
This is PostgreSQL 8.3.7 btw.
-- Thanks
Bernd