2011-07-22 6 views

答えて

10

SQL Serverでは、BCP入力は従来の挿入ステートメントとは大きく異なります。 SQLが何かを処理することを決定する方法は、いくつかの要因によって異なりますが、ほとんどの開発者は、データベースが使用するように設定されている復旧モデルのように考えることもありません。

bcpは、BULK INSERTおよびSqlBulkCopyクラスと同じ機能を使用します。ここ

詳細は一番下の行はこれですhttp://msdn.microsoft.com/en-us/library/ms188365.aspx

、これらの一括操作は、通常の操作よりも少ないデータを記録し、SQL Serverが入ってくるデータに伝統的なチェック・アンド・バランスを無視するように指示する能力を持っている 。すべてをそれらのものが一緒になってそれをより速くする役割を果たす。

+0

興味深い。私はSQLBulkCopyクラスを使用する場合、私は同じ種類の機能を得るだろうと思う...それは私が行くルートかもしれない –

3

bcpと通常の挿入の主な違いは、bcpは個々のトランザクションごとに個別のトランザクションログエントリを保持する必要がないことです。

+0

これは、私は通常の挿入を行うときにこのログをオフにする方法はありますか? –

+0

@Tomそこには方法がありますが、試してみると非常に悪い考えです –

8

これは詐欺です。

内部の知識があり、入力データを内部でより直接的にマッピングすることができます。それは他のヘビー級演算(解析、最適化、トランザクション、ロギング、遅延インデックス、分離など)をスキップできます。これは、通常の挿入SQL文では不可能なデータのすべての行に適用される前提を設定できます。

基本的には、データベースをデータベースにする大量の機能をスキップして、最後にまとめてクリーンアップすることができます。

+3

そうしないと指示しない限り、テーブルのトリガーもスキップするようにしたいとします。 – HLGEM

関連する問題