BUG #1347: Bulk Import stopps after a while ( 8.0.0. RC1)

Поиск
Список
Период
Сортировка
От PostgreSQL Bugs List
Тема BUG #1347: Bulk Import stopps after a while ( 8.0.0. RC1)
Дата
Msg-id 20041213072018.2B6C2738805@www.postgresql.com
обсуждение исходный текст
Ответы Re: BUG #1347: Bulk Import stopps after a while ( 8.0.0.  (Kris Jurka <books@ejurka.com>)
Список pgsql-bugs
The following bug has been logged online:

Bug reference:      1347
Logged by:          Bahadur Singh

Email address:      bahadursingh@yahoo.com

PostgreSQL version: 8.0 Beta

Operating system:   Windows XP

Description:        Bulk Import  stopps after a while ( 8.0.0. RC1)

Details:


Hello,

I have found a trivial problem during the bulk import of data.
I have a following situation.
  - I have 2 big table on SQL Server 2000 with 163000 rows each.

 - I have written a java program to transfer  data from SQL Server 2000 to
PosgresSQL 8.0.0 RC1 release. I am updating the data in batches.
If my batch size is 1000/2000 records at a time.. This works fine.. And if I
change this size to say 20,000, it does only finishes one loop.. and then
stays idle. The CPU usage down to 10 % which was before 100 % while applying
the first batch of 20, 000 records.


The execution of program is halting just at
int n [] = stmt.batchUpdate();

I waited one hours at the most to wait above instruction to finish and then
stopped manually.. I am not sure that is it JDBC error or PostgreSQL error.
I am using JDBC release of PosgresSQL 8.0.0 RC1 release.


Thanks
Bahadur


Include :
Log 1 : when does not work..
Log 2 : when works ..

------------------ Log 1 ----------------

WHEN BATCH SIZE = 2000
---------------

getMsSqlConnection() :: status =  ACTIVE
getPgSqlConnection() :: status =  ACTIVE
Fri Dec 10 16:47:23 CET 2004 Migration: CREATE TABLE EodIDC_S (
    "transstep" int,
    "transactionid" int,
    "departmentnumber" char (4),
    "plunumber" char (16),
    "identnumber" char (16),
    "quantity" int,
    "quantitydecimals" int,
    "packingunit" int,
    "mmcode" int,
    "amountsign" char (1),
    "amountabsolute" int,
    "code1" char (1),
    "code2" char (1),
    "code3" char (1),
    "idcdate" char (14),
    "originalitemprice" int,
 PRIMARY KEY ( TransactionId,TransStep ) )
Fri Dec 10 16:47:23 CET 2004 Migration: CREATE TABLE EodIDC_S FINISHED
Fri Dec 10 16:47:23 CET 2004 Migration: CREATE TABLE EodIDC_W (
    "transactionid" int,
    "transstep" int,
    "iteminfo" char (4),
    "itemnumber" char (16),
    "flag1" char (2),
    "flag2" char (2),
    "amount" int,
    "flag3" char (2),
    "code1" char (1),
    "flag4" char (2),
    "code2" char (1),
    "code3" char (1),
    "idcdate" char (14),
    "plunumber" char (16),
    "quantity" int,
 PRIMARY KEY ( TransactionId,TransStep ) )
Fri Dec 10 16:47:23 CET 2004 Migration: CREATE TABLE EodIDC_W FINISHED
Fri Dec 10 16:47:23 CET 2004 Migration: DDL finished in 109 ms
Fri Dec 10 16:47:23 CET 2004 Migration: Exporting Table to PostgreSQL =
EodIDC_S
Fri Dec 10 16:47:23 CET 2004 Migration: Reading data from MS SQL Server
table ... EodIDC_S
Fri Dec 10 16:47:24 CET 2004 Migration: Batch sent upto  = 20000
Fri Dec 10 16:47:24 CET 2004 Migration: EodIDC_S Total SQLs sent to DB=20000
Fri Dec 10 16:47:31 CET 2004 Migration: EodIDC_S Records updated in DB=20000
Fri Dec 10 16:47:32 CET 2004 Migration: Batch sent upto  = 40000
Fri Dec 10 16:47:32 CET 2004 Migration: EodIDC_S Total SQLs sent to DB=20000

****** NO RESPONSE AFTER ******
Process stopped and restarted with batch size 2000 rows



------------------ Log 2 ----------------
WHEN BATCH SIZE = 2000
----------------------


Fri Dec 10 16:51:02 CET 2004 Migration: CREATE TABLE EodIDC_S (
    "transstep" int,
    "transactionid" int,
    "departmentnumber" char (4),
    "plunumber" char (16),
    "identnumber" char (16),
    "quantity" int,
    "quantitydecimals" int,
    "packingunit" int,
    "mmcode" int,
    "amountsign" char (1),
    "amountabsolute" int,
    "code1" char (1),
    "code2" char (1),
    "code3" char (1),
    "idcdate" char (14),
    "originalitemprice" int,
 PRIMARY KEY ( TransactionId,TransStep ) )
Fri Dec 10 16:51:02 CET 2004 Migration: CREATE TABLE EodIDC_S FINISHED
Fri Dec 10 16:51:02 CET 2004 Migration: CREATE TABLE EodIDC_W (
    "transactionid" int,
    "transstep" int,
    "iteminfo" char (4),
    "itemnumber" char (16),
    "flag1" char (2),
    "flag2" char (2),
    "amount" int,
    "flag3" char (2),
    "code1" char (1),
    "flag4" char (2),
    "code2" char (1),
    "code3" char (1),
    "idcdate" char (14),
    "plunumber" char (16),
    "quantity" int,
 PRIMARY KEY ( TransactionId,TransStep ) )
Fri Dec 10 16:51:02 CET 2004 Migration: CREATE TABLE EodIDC_W FINISHED
Fri Dec 10 16:51:02 CET 2004 Migration: DDL finished in 94 ms
Fri Dec 10 16:51:02 CET 2004 Migration: Exporting Table to PostgreSQL =
EodIDC_S
Fri Dec 10 16:51:02 CET 2004 Migration: Reading data from MS SQL Server
table ... EodIDC_S
Fri Dec 10 16:51:03 CET 2004 Migration: Batch sent upto  = 2000
Fri Dec 10 16:51:03 CET 2004 Migration: EodIDC_S Total SQLs sent to DB=2000
Fri Dec 10 16:51:03 CET 2004 Migration: EodIDC_S Records updated in DB=2000
Fri Dec 10 16:51:03 CET 2004 Migration: Batch sent upto  = 4000
Fri Dec 10 16:51:03 CET 2004 Migration: EodIDC_S Total SQLs sent to DB=2000
Fri Dec 10 16:51:04 CET 2004 Migration: EodIDC_S Records updated in DB=2000
Fri Dec 10 16:51:04 CET 2004 Migration: Batch sent upto  = 6000
Fri Dec 10 16:51:04 CET 2004 Migration: EodIDC_S Total SQLs sent to DB=2000
Fri Dec 10 16:51:05 CET 2004 Migration: EodIDC_S Records updated in DB=2000
Fri Dec 10 16:51:05 CET 2004 Migration: Batch sent upto  = 8000

..
..

..

..

Fri Dec 10 16:52:07 CET 2004 Migration: EodIDC_S Records updated in DB=2000
Fri Dec 10 16:52:07 CET 2004 Migration: Batch sent upto  = 162000
Fri Dec 10 16:52:07 CET 2004 Migration: EodIDC_S Total SQLs sent to DB=2000
Fri Dec 10 16:52:08 CET 2004 Migration: EodIDC_S Records updated in DB=2000
Fri Dec 10 16:52:08 CET 2004 Migration: Complete Batch sent = 163492
Fri Dec 10 16:52:08 CET 2004 Migration: Total SQL=1492
Fri Dec 10 16:52:08 CET 2004 Migration: Records updated 1492
Fri Dec 10 16:52:08 CET 2004 Migration: Exporting Table to PostgreSQL =
EodIDC_S DONE



**** THE DATA WAS IMPORTED SUCCESSFULLY *****



************ JAVA METHOD ***************

    private void insertBulkData (ArrayList insertSqlList, String tableName,
boolean save ) throws Exception {
        // update

        try {
            Connection con = getPgSqlConnection();
            con.setAutoCommit(false);
            Statement stmt = con.createStatement();

            for (Iterator sqls = insertSqlList.iterator(); sqls.hasNext(); ) {
                String sql = (String)sqls.next();
                stmt.addBatch(sql);
            }
            log( tableName + " Total SQLs sent to DB=" + insertSqlList.size());
            int n [] = stmt.executeBatch();
            stmt.close();
            log( tableName + " Records updated in DB="  + n.length );
            if (save) {
                con.commit();
            }
        } catch (SQLException e) {
            e.printStackTrace();
            throw e;
        } catch (Throwable te) {
            te.printStackTrace();
        }

    }

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

Предыдущее
От: Bryan Roberts
Дата:
Сообщение: Win 32 'could not attach to proper memory at fixed address'
Следующее
От: Kris Jurka
Дата:
Сообщение: Re: BUG #1347: Bulk Import stopps after a while ( 8.0.0.