2016-05-28 5 views
1

.csvファイルから4000万レコードをデータベースに挿入する必要があります。csvファイルから何百万ものレコードをSQL Serverデータベースに挿入する適切な方法は何ですか?

  • Windowsサービス1:SqlBulkCopyを使用して、成功テーブル(中間テーブル)に有効なレコードを挿入するレコードの

  • を有効にCSV
  • を読む
  • Windowsサービス2.

    • メインに挿入するデータベースに各レコードを送信するこれら10 000
    • のためのforeachを実行している時間
    • で成功テーブルから10件の000レコードを取得表。

Windowsサービス1は、約30〜40分かかりますが、Windowsのサービス2は、タスク(最小時間)を完了するのに約5時間かかります。私はこれを行うには2つの方法がありますが、どちらがより良いと提案のために開いているかを判断することはできません。ループ

  • はここに私の最大の疑問は、我々であるWindowsサービス
  • から手順非同期呼び出しながら、我々が使用できるジョブの時計を使用して

  • 同時に4つの別々のウィンドウサービスと処理40000件のレコードを作成

    1. トランザクションロックを使用する私の前提に従えば、テーブルと他のプロセスがそれに取り組む必要があるため、プロシージャ内でトランザクションを使用しており、非同期で動作します。

  • +0

    百万でどのようにSQL取引このような大規模なデータ入力と周りあまりにも読んでいいか? SqlBulkCopyは唯一のものです。 「foreachを実行する」は、おそらく弱い領域です。カーソルを使用している場合は、照会を再設定して、それがベースになるようにしてください。 –

    +0

    Windowsサービス1ではsqlbulkcopyを使用していますが、2番目のWindowsサービスプロシージャで特定の検証を実行するので、bulkcopyを使用することはできません。別のものは、一括コピーを使用すると一度に1つのlakhレコードセットsqlの一括コピーを使用しても、1つのレコードが失敗しても、これを記録する必要があるか、またはどのレコードにこのエラーがあるかを知る必要があるため、バルクコピーを使用することはできません – sainath

    +1

    別のアプローチの場合はビットですが、統合サービスには、真ん中で変換できる一括挿入があります。私はSSISで1時間以上かかるとは思っていません – Caz1224

    答えて

    2

    私はこの仕事に間違ったツールを使用していると思います。 c#appsはこのトリックを行うかもしれませんが、統合サービスを使ってこれを行うもっと強力な方法があります。

    私はここで推測していますが、中間のこれらのテーブルは変換またはチェックするか、またはインポートをバッチダウンすることですか?

    SSISは、ログ制限とSQL一括インポートツールを使用して、これらのすべてを実行できます。私は現在、毎晩約800万レコードの病院データの輸入を行っています。それには数時間かかるだけです。

    this article

    +0

    現在、私はssisを見ています。そのような記事は私にはたくさんの助けになります(現在YouTubeやGoogleの検索結果を見ています)。中間のテーブルは、リンクされているcsvファイルに値があるので使用されます別のテーブルを作成し、メインテーブルにそのプライマリキーを挿入する必要があります(csvの名前があり、この中間テーブルに名前を挿入し、そのユーザーのプライマリキーをこのテーブルに更新し、 2番目のテーブル) – sainath

    +0

    ああ、私は私のデータセットにもその問題があります。現在私は、私の宛先テーブルを変更してPKを削除し、バッチの最後にそれを設定するSQLコマンドを実行します。私はそれは少し危険だが、私はそのテーブル上にクラスタード・インデックスを持っていて、別のクラスターを作成することは計算時間を縮めるだろう。複数のSSISがある場合は、そこにいくつかの偉大なSSISのものがあります – Caz1224

    +0

    現在、私たちはシステムにSSISとpluralsightをインストールしていません.SQLの作成はOKですが、銀行プロジェクトはそのリスクを冒すことができないので、これらのアカウントを確認することは、私にとってはやはり難しい課題です。今は失われてしまい、10個のWindowsサービスを作成することを考えています。 – sainath

    関連する問題