1

インポート ウィザードは一括挿入を使用するため、ウィザードを使用して別のサーバーのデータベース ソースから 500,000 レコードをインポートする必要があります。ソースクエリにフィルターを提供して、レコードが宛先に存在するかどうかを確認したいと考えています。

出来ますか?それを行う最善の方法は何ですか?

ここに画像の説明を入力

4

1 に答える 1

0

はい、両方のデータベースが同じサーバー上にある場合、またはサーバーがリンクされている場合、これは実行可能です。

ここでソースとして入力しようとしているクエリをソース データベースの SSMS に直接実行することでこれをテストし、実行されるかどうかを確認できます (おそらく aTOP 100または何かで制限されます)。

リンク サーバーを使用できない場合は、SQL Server Integration Services を調べてください。SSIS を使用すると、データ フローを作成できます (実際、インポートおよびエクスポート ウィザードは非常に単純な SSIS パッケージを作成します)。データ フローがどのように見えるかは、この質問への回答で詳しく説明されています。特にこれが定期的なタスクである場合は、これを SSIS パッケージに格納し、オンデマンドで実行したり、SQL Server エージェントで実行を計画したりできると便利な場合があります。

SSIS もオプションではない場合は、データ転送を 2 つのステップに分割することを検討してください。最初にソースから宛先へのすべての行をステージング テーブルに転送し、次にステージング テーブルから宛先テーブルに、フィルターに基づいて必要なものをコピーします。 . ただし、これはパフォーマンス、帯域幅、およびディスク容量の両方にかなりの打撃を与える可能性があり、最も洗練されていないソリューションです。

于 2019-07-03T14:42:50.823 に答える