Re: Postgres 8.2 and setFetchSize

Поиск
Список
Период
Сортировка
От Frédéric Houbie
Тема Re: Postgres 8.2 and setFetchSize
Дата
Msg-id 95484F7A889A61469885286054F675DD51252A@altarf.ionicsoft.com
обсуждение исходный текст
Ответ на Postgres 8.2 and setFetchSize  (Frédéric Houbie <fh@ionicsoft.com>)
Ответы Re: Postgres 8.2 and setFetchSize
Список pgsql-jdbc
I have one more information, I tried the same code using my local Postgres database (on my XP, 8.2.4), it is working.
Whatcan I check on the server to see what's wrong ? 
In my log, I can see it is using a cursor
2007-09-19 14:10:51.993  LOG:  duration: 0.000 ms  parse S_1: BEGIN
2007-09-19 14:10:51.993  LOG:  duration: 0.000 ms  bind S_1: BEGIN
2007-09-19 14:10:51.993  LOG:  duration: 0.000 ms  execute S_1: BEGIN
2007-09-19 14:10:51.993  LOG:  duration: 0.000 ms  parse S_2: SELECT * FROM SValues
2007-09-19 14:10:51.993  LOG:  duration: 0.000 ms  bind S_2/C_3: SELECT * FROM SValues
2007-09-19 14:10:51.993  LOG:  duration: 0.000 ms  execute S_2/C_3: SELECT * FROM SValues
20


Thanks

Frédéric

-----Message d'origine-----
De : pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org] De la part de Frédéric Houbie
Envoyé : mercredi 19 septembre 2007 13:54
À : pgsql-jdbc@postgresql.org
Objet : [JDBC] Postgres 8.2 and setFetchSize

Hi,

I'm trying to use the setFetchSize method to get back results faster. I'm using PostgreSQL 8.2 under XP. I'm using
postgresql-8.2-505.jdbc3.jardriver. I'm connecting to a Postgres on Linux (PostgreSQL 8.2.4 on i686-pc-linux-gnu,
compiledby GCC gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)). I think that the setFetchSize do not work.
I'veread a lot about the conditions for that to work (autocommit false) but it's not working. 

Here is my sample code:

   public static void main(String[] args) throws Exception{
        Connection con=null;
        try {
                Class.forName("org.postgresql.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }

            String s_server = "jdbc:postgresql://regulus:5432/ignimport" ;
            try {
                 con = DriverManager.getConnection(s_server, "bs", "");
            } catch(Exception e)
            {
                e.printStackTrace();
            }
        Statement st = con.createStatement();
        con.setAutoCommit(false);
        st.setFetchSize(Integer.parseInt(args[0]));
        System.out.println("FetchSize : " + st.getFetchSize());
      String q="SELECT a FROM SValues WHERE  Name = 'title'";
        long t1 = System.currentTimeMillis();
        ResultSet resultSet = st.executeQuery(q);
        if (resultSet.next())
        {
            String s = resultSet.getString(1);
        }
        long t2 = System.currentTimeMillis();
        System.out.println("exec time : " + (t2 - t1));

    }

It always take the same time (long time) whatever value I pass to this code for the FetchSize. It is really a problem
becauseI can't use the LIMIT keywords as I don't know the exact number of records I need. 

Any advice ?

Thanks



Frédéric Houbie


---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Frédéric Houbie
Дата:
Сообщение: Postgres 8.2 and setFetchSize
Следующее
От: Oliver Jowett
Дата:
Сообщение: Re: Postgres 8.2 and setFetchSize