スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

(オラクル)エクスポートとインポートを何度か繰り返すと、インポートコマンドでCPUが100%になって処理が終わらない

むかしこんにゃく工房←スポンサーサイト

【概要】
表題の通りです。
バッチでエクスポートとインポートコマンドを定期的に流しているんですが、
ある日タスクマネージャでみたらoracle.exeのCPUが100%になっていて、タスクマネージャからimp.exeを強制終了する羽目になった。

【対応】
テーブルのデータさえ戻せればいいので、エクスポートコマンドに、「CONSTRAINTS=N」オプションを追加した。

【詳細】
概要の事象が発生しました。
OSはwin2003、オラクルは10.2くらいだったと思う。(この辺は関係あるかわからんけど。未だにこれはエクスポートコマンドとインポートコマンドのバグだと思っているので。)

で、意味が分からず、テスト的に下記動作を行ってみた。
①エクスポート、インポートする対象のテーブルをドロップ&作成。(テーブル内のデータは0件のまま)
(このテーブルのある項目はチェック制約があり、0か1以外を許さない)
②この0件のテーブルをエクスポート。(引数は忘れたw
③んでエクスポートしたデータをインポート。
④、②と③をセットで10回くらい繰り返す。

すると、1回目は一瞬で完了するのに、5回目くらいのインポートで目に見えてやや遅くなり始める(0件なのに)
で、10回目くらいだと待つのがたるいくらい遅い。
という結果になった。
ためしに他のテーブルにしてみたら何回やっても早くて、問題のテーブルのチェック制約を外してエクスポートインポートしてみたら速かった。
これらのことから、このテーブルのある項目にあるチェック制約が影響しているとわかった。

とはいえ、テーブルのチェック制約を外すわけにもいかず、エクスポート時に制約をエクスポートしないよう「CONSTRAINTS=N」オプションを付けてエクスポートしたら、何度かやっても処理が速かった。
(インポート後にちゃんとテーブルの制約も残っているし良さそうだ)

今日は意外と仕事がはまった。
ちょっとネット調べた限りだと同じような事象の人は居るけど解決できていない人ばかりっぽい。
誰かの役にたってくださいw
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

syao88

Author:syao88
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
たるいカウンタ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。