1

別の ETL ツールから来て、SSIS で実行されている各コンポーネントの (生産) 統計を取得する方法を見つけようとしています。

たとえば、偏りが大きい外部ソースからフラット ファイルが読み取られている場合 (行数/秒が時間ごとに大幅に変化する)、その情報を知りたいと考えています。

SSIS に重大な「スロー ポイント」(バッファがいっぱいになる/データ ストリームが影響を受ける) がある場合は、その情報も知りたいです。

また、たとえば DMV の sprocs を使用すると、CPU 時間と readIO/writeIO も理想的です (また、sproc から SSIS に一貫性のある/測定可能なアプローチで移行することで改善を示している人に役立ちます)。

この質問をしている理由は、デバッグ中に BIDS を通過する行が表示されるためですが、本番環境の各コンポーネントの実際の行/秒を反映していない可能性があります。

実稼働環境でこれらの種類の統計を有効化/イントロスペクト/取得するにはどうすればよいでしょうか (たとえ小さなヒットがあったとしても、その数値は大きな問題です)。

ありがとう!

-ダレン

4

2 に答える 2

1

SSIS 2005 では、これを行うのは困難です。複雑な SSIS パッケージでイベント ハンドラからタスク レベルのログを実行しようとすると、ランタイム エンジンが「ただ停止」するのを見たことがあります。1 つの考えとして、ソース アダプターの直後、および行を出力する各データ フロー パスに行数変換を追加することによってのみ、データ フローをインストルメント化します。次に、SQL 実行タスクを各データ フロー タスクの OnPreExecute イベント ハンドラーに追加して実行の開始を記録し、別の SQL 実行タスクを対応する OnPostExecute イベント ハンドラーに追加します。onPostExecute ロジックで、データ フロー タスク実行の行数と終了時刻を格納します。これで、データ フロー パイプラインのスループットを計算するのに十分なメトリックが得られると思います。

これが役に立てば幸いです、アンディ

于 2012-04-17T18:52:17.717 に答える
1

役立つかどうかはわかりませんが、パッケージのログを構成して、「SQL Server Profiler の SSIS ログ プロバイダー」を選択してみてください。

DataSource 処理の開始と終了の間のいくつかの情報を示します

于 2012-04-17T11:13:38.197 に答える