2

11g データベースに対して実行している SQL*Loader スクリプトがあります。
SQL*Loader の 11g バージョンを使用しています。

最後のレコードが挿入された後、最終的なコミット カウントをコマンド ウィンドウに出力する前、およびログ ファイルに出力する前に、SQL*Loader がハングするという問題があります。

これは、LAN のローカル データベースでは正常に動作するように見えますが、LAN 外のデータベースで実行するとハングします。

プロセスを手動で強制終了すると、すべてのレコードがデータベースに正常にロードされます。

.BAT ファイル内:

sqlldr CONTROL='SOME_TABLE.ctl' log='logs/SOME_TABLE.log' bad='bad/SOME_TABLE.bad' skip=1

.CTL ファイル内:

OPTIONS(direct=true, rows=20000)
load data 
infile 'data/SOME_TABLE.csv'
append
into table SOME_TABLE
fields terminated by ','
OPTIONALLY ENCLOSED BY '"' AND '"'
trailing nullcols (
    FIELD01     CHAR(38),
    FIELD02     CHAR(500),
    FIELD03     CHAR(34),
    FIELD04     CHAR(1),
    FIELD05     CHAR(1),
    FIELD06     CHAR(10),
    FIELD07     CHAR(2),
    FIELD08     CHAR(5),
    FIELD09     CHAR(2),
    FIELD10     CHAR(5),
    FIELD11     CHAR(5),
    FIELD12     CHAR(4),
    FIELD13     CHAR(2),
    FIELD14     CHAR(9),
    FIELD15     CHAR(9),
    FIELD16     TIMESTAMP      "YYYY-MM-DD HH24:MI:SS.FF6",
    FIELD17     TIMESTAMP      "YYYY-MM-DD HH24:MI:SS.FF6",
    FIELD18     CHAR(38),
    FIELD19     CHAR(2),
    FIELD20     TIMESTAMP      "YYYY-MM-DD HH24:MI:SS.FF6",
    FIELD21     CHAR(2),
    FIELD22     CHAR(38),
    FIELD23     DATE           "MM/DD/YYYY",
    FIELD24     CHAR(15),
    FIELD25     DATE           "MM/DD/YYYY",
    FIELD26     CHAR(15),
    FIELD27     CHAR(3),
    FIELD28     CHAR(5),
    FIELD29     CHAR(4),
    FIELD30     CHAR(10),
    FIELD31     CHAR(10),
    FIELD32     CHAR(1),
    FIELD33     CHAR(4),
    FIELD34     CHAR(1),
    FIELD35     CHAR(1),
    FIELD36     CHAR(1)
)

テーブル DDL:

--------------------------------------------------------
--  DDL for Table SOME_TABLE
--------------------------------------------------------
CREATE TABLE SOME_TABLE (
    FIELD01      NUMBER(*,0)         NOT NULL,
    FIELD02      FLOAT(126)          NOT NULL,
    FIELD03      VARCHAR2(34)            NULL,
    FIELD04      CHAR(1)                 NULL,
    FIELD05      CHAR(1)                 NULL,
    FIELD06      CHAR(10)                NULL,
    FIELD07      CHAR(2)                 NULL,
    FIELD08      CHAR(5)                 NULL,
    FIELD09      CHAR(2)                 NULL,
    FIELD10      CHAR(5)                 NULL,
    FIELD11      CHAR(5)                 NULL,
    FIELD12      CHAR(4)                 NULL,
    FIELD13      CHAR(2)                 NULL,
    FIELD14      CHAR(9)                 NULL,
    FIELD15      CHAR(9)                 NULL,
    FIELD16      TIMESTAMP(6)        NOT NULL,
    FIELD17      TIMESTAMP(6)        NOT NULL,
    FIELD18      NUMBER(*,0)             NULL,
    FIELD19      CHAR(2)                 NULL,
    FIELD20      TIMESTAMP(6)            NULL,
    FIELD21      CHAR(2)                 NULL,
    FIELD22      NUMBER(*,0)             NULL,
    FIELD23      DATE                    NULL,
    FIELD24      VARCHAR(15)             NULL,
    FIELD25      DATE                    NULL,
    FIELD26      VARCHAR(15)             NULL,
    FIELD27      CHAR(3)                 NULL,
    FIELD28      CHAR(5)                 NULL,
    FIELD29      CHAR(4)                 NULL,
    FIELD30      VARCHAR2(10)            NULL,
    FIELD31      VARCHAR2(10)            NULL,
    FIELD32      CHAR(1)                 NULL,
    FIELD33      CHAR(4)                 NULL,
    FIELD34      CHAR(1)                 NULL,
    FIELD35      CHAR(1)                 NULL,
    FIELD36      CHAR(1)                 NULL
)
    NOLOGGING
    NOCOMPRESS
    TABLESPACE RAW_DATA_01_TS
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    STORAGE    (
                INITIAL          64K
                BUFFER_POOL      DEFAULT
               )
PARTITION BY RANGE(FIELD16) INTERVAL(NUMTODSINTERVAL(10, 'MINUTE')) (
    PARTITION SOME_TABLE_201001010000 VALUES LESS THAN (TO_DATE('2010-01-01 00:00', 'YYYY-MM-DD HH24:MI'))
);

期待される:

SQL*Loader: Release 11.2.0.1.0 - Production on Fri Feb 17 10:36:14 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Load completed - logical record count 252593.

実際:

SQL*Loader: Release 11.2.0.1.0 - Production on Fri Feb 17 10:36:14 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
4

1 に答える 1

0

これはにリンクされていると思いDIRECT=TRUEます。Oracleは、プロセスの最後にインデックスと制約を再検証する必要があります。テーブルが非常に大きい場合、これは同じくらい長くなる可能性があります。

于 2012-02-18T08:29:04.777 に答える