2

SQL Server にロードする必要がある単一のフラット ファイルがあります。そのためには、SSIS を使用する必要があります。これらのファイルを最速の方法でロードするのに役立つことについて知りたいです。

  1. フラット ファイル マネージャーまたはスクリプト タスクを使用してフラット ファイルをロードする必要がありますか? (私の質問の1つで、スクリプトタスクのロードが高速であるという回答が得られたため)
  2. 宛先 (ADO.NET または SQL Server) ?
  3. ファイルをより高速にロードするために作成できるフラットファイルの他の設定/ベストプラクティスはありますか?
4

2 に答える 2

2

Microsoft が SSIS を使用して 30 分で 1 TB をロードできた方法のリファレンスを次に示します。

Microsoft がフラット ファイル ソースと OLEDB デスティネーションを使用してこの同じ偉業を達成したため、スクリプトの方が高速であるとあなたが言うとき、私は驚きます。また、ロード プロセスを小さなチャンクに分割し、宛先テーブルを分割し、非常によく調整されたハードウェアを使用することで、ロードを最適化しました。ただし、彼らが SSIS パッケージで使用している手法は、SSIS から大規模なデータセットをロードする必要がある場合に使用するものです。

(Microsoft) SSIS を使用して 30 分で 1 TB をロードしました。

于 2012-06-20T13:04:43.777 に答える
1

あなたが達成しようとしていることには、SSIS が最適な方法だと思います。これにより、柔軟性が大幅に向上します。Flat File Manager/Scripting を使用する限り、スクリプトを使用すると常にパフォーマンスが向上しますが、ナビゲート (または修復) が容易になる SSIS を使用しています。根っからの SQL 開発者の多くは、スクリプトを作成するように指示すると思いますが、どちらの方法でも機能することがわかります。

宛先に関しては、SQL Server のみを使用しているため、質問のその部分について話すことはできません。

私の意見では、ベストプラクティスはできるだけシンプルに保つことです。物事を簡単に行うほど、パフォーマンスが向上します。SSIS での 3 年間、私は常にあらゆるクエリを自分の能力を最大限に最適化するように努め、それを SSIS に組み込みました。

これらのファイルに対して単純な ETL を実行しているだけのように思えます。その場合は、私の経験に基づいて SSIS をお勧めします。すべてをロードしたら、char、varchar、および int のさまざまなケースのデータ型を変更できます。

お役に立てれば!

于 2012-06-19T20:29:10.803 に答える