none
複数テーブルがある場合とテーブル1つの場合でのbcpの実行速度に差異 RRS feed

  • 質問

  • 立て続けの質問で申し訳ありません

    Createしたテーブルが100が存在している状況で約3000万件のデータをbcpでimportした時、2時間位掛かったのですが、ところが対象のテーブル1つだけにして同じデータをbcpでimportすると10分以内で完了しました。

    これは妥当でしょうか?あまりにも差異がありすぎたのですが・・・

     


    SRHSRH
    2012年2月1日 1:18

回答

  • 妥当かどうかは判断つきませんが。。。
    1テーブルで10分とすると、100テーブルで100分、領域の割り当てやインデックスの更新がありますし、
    同時実行していればリソースの取り合いも起きますので時間がかかるのは
    ある程度仕方がないのではないでしょうか。
    • 回答の候補に設定 山本春海 2012年2月20日 7:40
    • 回答としてマーク 山本春海 2012年2月24日 8:43
    2012年2月15日 14:37
    モデレータ

すべての返信

  • 妥当かどうかは判断つきませんが。。。
    1テーブルで10分とすると、100テーブルで100分、領域の割り当てやインデックスの更新がありますし、
    同時実行していればリソースの取り合いも起きますので時間がかかるのは
    ある程度仕方がないのではないでしょうか。
    • 回答の候補に設定 山本春海 2012年2月20日 7:40
    • 回答としてマーク 山本春海 2012年2月24日 8:43
    2012年2月15日 14:37
    モデレータ
  • お返事を頂いたのに大変遅くなり申し訳ありません

    本件その後、判った事というか、事実だけ記載しておきます

    前提:複数bcpを同時しない

        あくまでも実行するのは1つのテーブルに対してbcpを使ってimport

    条件1;DDLしたテーブル数100

    条件2:DDLしたテーブル数1

    上記条件1,2ともに同じレイアウトテーブルに対して、3000万件程度のbcpによるimportを実行

    条件1の結果 : 約120分で処理終了

    条件2の結果 : 約10分で処理終了

    という結果でした。

    その後、いろいろ試してみましたがbcpではなく DBファイルをデタッチしてターゲットサーバにコピーし、 アタッチしてSELECT INSERT文を実行することで60分程度に短縮できました。


    SRHSRH

    2012年4月4日 5:57