executebatch:

From: Vladimir Sitnikov <sitnikov(dot)vladimir(at)gmail(dot)com>
To: List <pgsql-jdbc(at)postgresql(dot)org>
Subject: executebatch:
Date: 2015-10-02 13:29:16
Message-ID: CAB=Je-GagyN1DH0UG=u62RHCzQ4ghxTVh4FVoBmkNAOeRc+=+g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Hi,

I'm observing a performance degradation in executeBatch case when
upgrading 9.3-1102.jdbc41 -> 9.4-1203.

1102 -- 0.78 sec / executeBatch
1203 -- 1.8 sec / executeBatch

It looks like the degradation is caused by the fact that two "flag"
constants share the same value:
QUERY_FORCE_DESCRIBE_PORTAL = 128; and QUERY_DISALLOW_BATCHING = 128;
https://github.com/pgjdbc/pgjdbc/commit/a6bd36faaedc779f932fa76f52bab9550f0fcd6d#diff-54e833c3fd25410b800ff28a1e189227R97
https://github.com/pgjdbc/pgjdbc/commit/a6bd36faaedc779f932fa76f52bab9550f0fcd6d#diff-54e833c3fd25410b800ff28a1e189227R106

Profiling shows that 1203 does QueryExecutorImpl.flushIfDeadlockRisk
-> sendSync a lot.

I wonder if reusing 128 was intentional or not.
I'll try modifying QUERY_FORCE_DESCRIBE_PORTAL=512 to see if that helps.

--
Regards,
Vladimir Sitnikov

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Tom Smith 2015-10-03 23:47:44 latest jdbc release
Previous Message Thomas Kellerer 2015-10-01 12:51:28 Re: DatabaseMetaData.getTypeInfo() - returns all tables as well