0

私は優れたSQLプログラマーではなく、基本的なものしか持っていませんが、データを高速にロードするためのBCPのことを聞いたことがあります。インターネットを検索しましたが、これはコマンドラインのみのユーティリティであり、コードで使用できるものではないようです。

重要なのは、SQLServer2008データベースで非常に高速な挿入と更新を行えるようにしたいということです。データベースに以下を受け入れる関数が欲しいのですが。

  • 挿入/更新操作を実行したいテーブルの名前
  • データをフィードする列の名前
  • CSV形式のデータまたはSQLがばかげて高速に読み取ることができるもの
  • 関数が挿入または更新操作を実行する必要がある天気を示すフラグ

次に、この関数はこのCSV文字列を読み取り、テーブルの挿入/更新に必要なコードを生成します。

次に、C#でコードを記述して、その関数を呼び出し、テーブル名、列名、CSV文字列としてシリアル化されたオブジェクトのリスト、および挿入/更新フラグを渡します。

ご覧のとおり、これは高速かつ汎用的であり、大量のデータを処理するプロジェクトに適しており、したがって、私の会社のフレームワークの候補となることを目的としています。

私は正しいと思いますか?これは良い考えですか?そのBCPを使用できますか?すべてのケースに適していますか?

ご覧のとおり、これについていくつかの指示が必要です...助けてくれてありがとう!

4

2 に答える 2

1

SQL Server統合サービス(SSIS)の使用を検討しましたか。それはあなたが説明することを正確に行うように設計されています。とても速いです。トランザクションベースでデータを挿入できます。また、スケジュールどおりに実行するように設定できます。そして、はるかに。

于 2010-12-02T20:52:22.663 に答える
1

C#では、SQLBulkCopyを見てください。これは、SSISがバックグラウンドで使用するものです。

真のbcp / BULK INSERTの場合、許可されていない可能性のあるbulkadmin権限が必要になります

于 2010-12-02T21:48:30.423 に答える