5

ssis パッケージのメモリ使用量についていくつか質問があります。

  1. サーバー A からサーバー B にデータをロードしていて、ssis パッケージがデスクトップ システムにあり、BIDS を介して実行されている場合、デスクトップ システムでバッファの作成 (メモリ使用量) が発生するかどうか? この場合、パフォーマンス (低メモリはサーバーと比較して)遅くなりますよね?

  2. デスクトップ システムでパッケージを開発中にサーバー リソースを使用できるようにするにはどうすればよいですか?

  3. 3 人の ssis 開発者がいて、全員が一度に異なるパッケージを開発している場合、最善の開発方法は何ですか?

4

3 に答える 3

6

#3 をさらに詳しく説明すると、チームが単一の SSIS ソリューションで作業できるようにする最善の方法は、問題 (パッケージ) をより小さなチャンクに分解し、親子/マスター/スレーブ タイプを介してそれらの呼び出しを制御することです。関係。

たとえば、ソリューションはデータ ウェアハウスの読み込みに関するものです。FactController.dtsx と DimensionController.dtsx の 2 つのコントローラー パッケージが必要かもしれません。彼らの責任は、ニーズを解決するさまざまなパッケージを呼び出すことです (ファクトまたはディメンションのロード)。おそらく、私の DimensionProductLoader パッケージはスノーフレーク (Product と SubProduct テーブルを更新する必要がある) を扱っているため、2 つのパッケージに分解されます。

これらすべての目標は、開発プロセスを管理しやすいチャンクに分割して、単一のパッケージへの同時アクセスを回避することです。XML をマージしても、生産的な時間の使い方にはなりません。

これらすべての唯一の共有リソースは SSIS プロジェクト ファイル (dtproj) です。これは、プロジェクトを危険にさらすパッケージを列挙した単なる XML ドキュメントです。適切な名前の空白のパッケージを使用して事前にスケルトン プロジェクトを作成すると、プロジェクトをリポジトリにマージしようとする人々にまつわる最初の苦労の一部をスキップできる可能性があります。少なくとも TFS では、誰もが XML グロブをチェックインするよりも、1 回限りのタイプのマージの方がはるかにうまくいくことがわかりました。

于 2012-05-24T20:25:40.003 に答える
4
  1. はい。パッケージは、それを起動するプログラムと同じコンピューターで実行されます。別のサーバーにリモートで保存されているパッケージをプログラムが読み込む場合でも、そのパッケージはローカル コンピューターで実行されます。

  2. サーバーリソースがサーバーCPUを意味する場合、それはできません。ネットワーク上の他のコンピュータのリソースを使用するのと同じです。もちろん、SQL サーバーで選択を実行する OleDBSource がある場合、選択を "実行" する CPU は SQL サーバーの CPU になりますが、結果セットが取得されると、パッケージが格納されているコンピューターによって処理されます。が走っています。

  3. 他の開発方法と同様に。3 人の開発者によって開発されている C# プロジェクトのクラスがある場合、どのようにしますか? パッケージは xml ファイルですが、より複雑なため、各開発者が同じファイルで作業し、変更をマージすることができます。私はお勧めしません。複数の開発者が同じパッケージに取り組んでいましたが、まったく同時にではありませんでした。

于 2012-05-24T20:01:18.143 に答える
3

ディエゴとビルの回答の拡張:

1) ディエゴはこれをほぼ正しいと思います。追加します: パッケージはそれを実行するコンピューター上で実行されますが、さらに悪いことに、BIDS を介してパッケージを実行することは、サーバー上で表示されるものにさえ近くありません。パッケージを実行すると、ローカルで実行される 32 ビット プロセスになります。32 ビット サブシステムでの実行に関連する制限と、バッファーのすべてのデータをネットワーク経由でワークステーションのメモリ内のバッファーにコピーし、パッケージ フローに合わせて変換し、再度プッシュするため、速度が低下します。ネットワーク経由で宛先サーバーに。これは、テスト環境でデータの小さなサブセットをテストする場合には問題ありませんが、サーバー システムでのパフォーマンスを見積もるためには使用しないでください。

2) ディエゴはこれを正しく持っています。サーバーのパフォーマンスを確認したい場合は、テスト サーバーにデプロイして実行します。

3) bilinkc にはこれが正しい。TFS での SSIS の大きな欠点の 1 つは、単一のパッケージで作業を共有する洗練された方法がないことです。1 つのプロセスで複数の開発者を使用する場合は、プロセスを小さなチャンクに分割し、1 人の開発者のみが各部分で作業できるようにします。彼らが同時に同じパッケージを開発していない限り、問題はありません。

于 2012-05-24T21:01:06.493 に答える