2

あるイベントがSISSパッケージに含まれているときに情報/ログを保存したい場合、どちらの方法が良いですか?

  1. SSISログを使用します-プロバイダータイプをSQLServerに設定し、SQLServerに保存するイベントを選択します。
  2. パッケージ/タスクでイベントハンドラーを使用し、SQL実行タスクを使用してSQLServerのテーブルに情報を保存します。
4

2 に答える 2

3

より良いのは主観的です。要件を知ることによってのみ、一方が他方よりも優れているかどうかを判断できます。

SSIS ロギング

これは、パッケージの進行状況を追跡するための、すぐに使用できる簡単なメカニズムです。テーブルは SQL Server に既に存在し、msdb 以外にログを記録している場合は、ターゲット カタログにコピーされます (はい、そうしてください)。関心のあるイベントについて記録する情報が要件と一致する場合、それは簡単な選択です。

イベント ハンドラ

イベント ハンドラー ルートにより、記録される情報がより柔軟になります。実際、必要がある場合は、イベント ハンドラーを使用して、イベント ハンドラー内で本格的なワークフローを作成できます (そのアプローチには反対することを強くお勧めします)。イベント ハンドラーを使用して記録することの欠点は、どこにでもセットアップする必要があることです。コピー & ペーストは 2012 ではそれほど不安定ではありませんが、ログへの変更はすべてのパッケージで永続化する必要があります。

長い間、パッケージ情報を記録するために「両方」のアプローチを使用してきました。ログは SQL Server に送られ、OnError、OnTaskFailed、OnWarning、OnInformation、OnPreExecute、OnPostExecute を記録しました。これにより、通常必要以上の情報が得られましたが、簡単にアクセスできるため、そのままにしておきました。

また、OnTaskFailed イベントを接続して、障害に関する詳細な情報をオンコール ページャーに電子メールで送信しました。これは、毎日 3 つのパッケージを実行しているときに問題なく機能しました。何百ものパッケージを実行する段階に達したとき...イク。

于 2012-12-05T14:18:08.470 に答える
1

イベントハンドラーは、情報を記録するだけでなく、そのイベントを処理するために使用されることになっています。つまり、ロギングよりもはるかに多くの機能を提供します。

一方、SSIS ログは、名前が示すとおりに機能します。

于 2012-12-05T15:57:13.397 に答える