On Sat, Feb 05, 2011 at 10:59:45PM +0100, Rados??aw Smogura wrote: > I do performance tests against orignal JDBC driver and my version in binary > and in text mode. I saw strange results when I was reading varchar values. > Here is some output from simple benchmark > > Plain strings speed Execution: 8316582 , local: 2116608 , > all: > 10433190 > Binary strings speed Execution: 9354613 , local: 2755949 , > all: > 12110562 > Text NG strings speed Execution: 8346902 , local: 2704242 , > all: > 11051144 > > Plain is standard JDBC driver, Binary is my version with binary transfer, > Text > is my version with normal transfer. 1st column, "Execution" is time spend on > query execution this includes send, recivie proto message, store it, etc, no > conversion to output format. Values are in nanoseconds. > > In new version I added some functionality, but routines to read parts in > "Execution" block are almost same for binary and text. > > But as you see the binary version is 10-20% slower then orginal, and my text > version, if I increase number of read records this proportion will not > change. > I done many checks, against even "skip proto message content" driver, end > results was same 10-20% slower.
Comparing "COPY tbl(varchar_col) TO '/dev/null'" to "COPY tbl(varchar_col) TO '/dev/null' WITH BINARY" gives a better sense of the situation. Your data could have reflected a backend performance problem, but it could just as well have arisen from your client-side changes. (This thread also really belongs on pgsql-performance. See http://wiki.postgresql.org/wiki/SlowQueryQuestions) I can reproduce a 20% slowdown using the test case I mentioned above. I didn't investigate much further. Thanks, nm -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers