R: Slow performance updating CLOB data - Mailing list pgsql-jdbc

From Nicola Zanaga
Subject R: Slow performance updating CLOB data
Date
Msg-id 47856758BAE4794A9EC4FCA2E63FC85E370593D0@exchange.intranet.efsw.it
Whole thread Raw
In response to Slow performance updating CLOB data  (Nicola Zanaga <NZanaga@efsw.it>)
Responses Re: Slow performance updating CLOB data  (Thomas Kellerer <spam_eater@gmx.net>)
List pgsql-jdbc

Here a snippet:

        Properties props = new Properties();

        props.put("user", "test1");

        props.put("password", "test1");

        Connection connection = java.sql.DriverManager.getConnection("jdbc:postgresql://<server>", props);

 

        Statement st = connection.createStatement();

        st.execute("CREATE TABLE TestClob1 (id int8 NOT NULL, data TEXT, PRIMARY KEY(id))");

        st.close();

 

        st = connection.createStatement();

        st.execute("INSERT INTO TestClob1 (id) VALUES (1) ");

        st.close();

 

        st = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);

        ResultSet resultSet = st.executeQuery("SELECT id, data FROM TestClob1 WHERE id = 1 ");

 

        resultSet.next();

        resultSet.updateCharacterStream(2, new StringReader("hello"), "hello".length());

        resultSet.updateRow();

        resultSet.close();

 

 

Da: Nicola Zanaga
Inviato: domenica 17 luglio 2016 11:39
A: pgsql-jdbc@postgresql.org
Oggetto: Slow performance updating CLOB data

 

Hi, using ResultSet.updateCharacterStream to update a CLOB is very slow.

Most of the time is spent in method PgResultSet.isUpdateable  because the table has a primary key but doesn't have a "oid" column.

So the code tries to get primary keys from the query, using getMetaData().getPrimaryKeys.
This is a very slow process.

There is any workaround ?

pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: Slow performance updating CLOB data
Next
From: Thomas Kellerer
Date:
Subject: Re: Slow performance updating CLOB data