0

この問題について私を助けてください:

これはファイル アップロード システム (Classic ASP+ VB6 Com+) です。ユーザーは txt ファイルを Oracle DB にアップロードします。問題は、いくつかのレコード (約 500,000 行、サイズ約 40MB、あまり大きくない) を含むいくつかのテーブルにデータをアップロードするときに、システムがハングすることです。テーブルを切り捨てると、アップロードは正常に完了します。

アップロード ロジック: ファイルを読み取り、一度に 1000 レコードをサーバーに非同期で送信し、VB は UPDATEBATCH を使用して ODBC 経由で挿入をコミットします。問題は、最初の 1000 レコードしかコミットしないことです。IIS の ASP タイムアウト設定がデフォルトの 90 秒である場合、ASP タイムアウト メッセージでエラーが発生します。設定をより大きな数 (9000) に増やしたところ、最初の 1000 レコードを挿入した後にハングします.... ただし、これは PROD でのみ発生します。テーブル構造とデータを PROD から DEV にコピーし、同じファイルをアップロードしたところ、DEV で正常に動作しました。

テーブル作成スクリプトは次のとおりです。

CREATE TABLE TableA
(
  ID           NUMBER(12)               NOT NULL,
  ColA         NUMBER(12)               NOT NULL,
  ColB         NUMBER(5)                NOT NULL, 
  ColC         CHAR(2 BYTE), 
  ColD         VARCHAR2(2000 BYTE)
  ....
)
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   25
STORAGE    (
            INITIAL          24K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
            FLASH_CACHE      DEFAULT
            CELL_FLASH_CACHE DEFAULT
           )
LOGGING 
NOCOMPRESS 
NOCACHE
NOPARALLEL
MONITORING;

提案/助けに本当に感謝します

4

1 に答える 1

0

サーバーで更新を行うセッションをトレースし、対応する待機イベントを調べます。

10046 イベントを設定することで、このセッションに接続している間、ロード プロセスを開始する前に、セッションをトレースできます。

alter session set events '10046 trace name context forever, level 12"

これにより、サーバー上に分析可能なトレース ファイルが作成されます。ファイルはサーバーに保存されるため、DBA はこれらのファイルへのアクセス権を付与する必要があります。ASH を使用するなど、他のオプションもありますが、DBA はこのオプションを認識している必要があります。

于 2012-08-18T20:18:28.780 に答える