2017-11-20 25 views
2

複数のフラットファイルの一括インポートにOLE DBの宛先を使用していました。いくつかのチューニングの後、私はSQL Server Destinationを25〜50%高速化することになりました。SQLサーバーの宛先とOLE DBの宛先

ウェブ上に矛盾した情報があるので、私はこの宛先について混乱していますが、いくつかは反対しているものもあれば、それを使用しているものもあります。私は知っている、私はそれを生産に展開する前に深刻な落とし穴がありますか?このMicrosoft Articleによると感謝

+0

矛盾する情報はありますか? SQL Serverの宛先の欠点は、パッケージを挿入するSQL Server上で実行する必要があることです。したがって、あなたが挿入しようとしているサーバーとは異なるサーバーでパッケージを実行する場合は、それを使用しないでください。私は情報がかなり明確だと思った。 –

+1

この柔軟性の低下と同様に、エラーメッセージはSQL Server宛先でははるかに暗号化される可能性があるため、その理由で使用しないことをお勧めします。たとえば、(そしてMattが知っておくべきである)https://www.mattmasson.com/2012/06/should-i-use-the-sql-server-destination/ – Rich

+0

SQL上でOLE DBを使用するとサーバーの宛先。制限がある場合のみ:共有メモリを使用し、エラー出力なしで、私はそれで生きることができます。私はちょうど将来起こる可能性のある問題を避けたいと思っていました。 –

答えて

1

SQL Serverの先

SQL Serverの先には、SQL ServerのテーブルやビューにローカルのSQL Serverデータベースとバルクロードデータに接続します。リモートサーバー上のSQL ServerデータベースにアクセスするパッケージでSQL Serverの宛先を使用することはできません。代わりに、パッケージはOLE DBの宛先を使用する必要があります。

SQL Serverの宛先は、一括挿入タスクが提供するものと同じ高速のSQL Serverへのデータ挿入を提供します。ただし、SQL Serverの格納先を使用すると、データがSQL Serverに読み込まれる前にパッケージで列データに変換を適用できます。

OLEDB先:SQL Serverにデータをロードする場合

は、あなたがこのMicrosoft Articleするためによると代わりにOLE DB先

OLEDB先

のSQL Serverの宛先を使用することを検討すべきです - 高速ロードオプション:OLE DBの宛先のテーブルまたはビューにデータをロードし、バルク挿入に最適化された高速ロードオプションを使用します。

この MSDN Pageによると、SQL Serverの先

OLEDB先:

ドナルド・ファーマーは、統合サービスの元グループプログラムマネージャーは、使用してパフォーマンスの5〜10%の増加を得ることができることを言いましたSQL Server Destination。これらの情報に


結論

ベース、あなたはSQL Server Destinationは(それが一括挿入を使用しています)データを挿入のパフォーマンスを向上させるが、それはローカルSQLで特定のケースのために設計されていると言うことができますサーバ。 OLEDB Destinationがより一般的であり、他の場合が推奨されます。

また、あなたは、単に挿入のパフォーマンスを向上させるOLE DB destinationに(も一括挿入を使用しています)Fast Loadデータアクセスモードを使用することができます。しかし、Fast Loadオプションは宛先テーブルでテーブルロックを行い、他のユーザーが挿入中にアクセスするのを防ぐために考慮する必要があります。

+1

「OLE DB接続」は広く「SQL Server Destination」であり、関連するトピック – Yahfoufi

0

Hadiのうまい答えを増やすには、SQL Server Destinationを使用しないでください。

私の経験では、パッケージが宛先データベースと同じマシン上で実行されなければならないという制約が、パフォーマンス上の利点を上回るものではありません。今日または1年後にはあなたのために正しいかもしれない、あるいはそうでないかもしれない処理アーキテクチャを強制します。私の好みにはあまりにも柔軟性がありません。

私がSQL Server Destinationを避けることを提唱したもう一つの大きな理由は、私が経験したばかりのバグです。同一のフラットファイルを空白のラウンド1にラップすると、何かが間違っているという曖昧なエラーメッセージ(具体的には思い出すことができません)で終了します。直ちにパッケージを再起動すると、期待どおりに動作します。 おそらくあなたは、ほとんどの謙虚な読者が、再処理時間の処理時間のトレードオフを受け入れることができますが、私にとっては、おそらく2008年以降は価値がありませんでした。

関連する問題