パッケージの管理とトラブルシューティング
SSISDBカタログにはプロジェクトやパッケージ、環境などのオブジェクトの情報、パッケージ実行時のイベントメッセージやパフォーマンス情報などトラブルシュートに必要となる情報が含まれます。これらの実体は、SSISDBデータベースの内部テーブルに格納されています。パッケージ実行時の情報はビューを使用することもできますが、SSMSのダッシュボードを使用してグラフィカルに表示することが可能です。
パッケージ実行時の問題についてこれらを使用した基本的なトラブルシューティングをご紹介します。最初にパッケージの実行に失敗した場合の確認のポイントです。パッケージの失敗時には次の点を確認します。
• パッケージ内の失敗したポイント
• エラーの状況
SSISDBカタログにはパッケージ実行時のイベントのメッセージなど自動的に様々な情報がロギングされます。パッケージ内の失敗したポイントはこれらのログを確認します。SSMSのオブジェクトエクスプローラーで、SSISDBカタログのプロジェクトのノードを選択し、右クリックのメニューから「レポート」-「標準レポート」-「全ての実行」を選択して表示します。
一覧にはプロジェクトのパッケージの実行毎に1行表示されています。表示件数が多い場合は、フィルタを使用して特定のパッケージの情報を出力することも可能です。レポートの中央の「フィルタ」リンクを押下すると、「フィルタの設定」ダイアログが表示されます。
失敗したパッケージの「概要」リンクから概要のレポートを表示します。概要のレポートではエラーとなったタスク、実行時のパラメーター値を確認することもできます。
エラーの状況を確認するには概要のレポートで失敗したタスクの実行パスのリンクから、メッセージのレポートを表示します。メッセージのレポートではエラーのメッセージやエラーとなったタスクの全てのメッセージを確認することができます。
次にパッケージのパフォーマンス問題では、パッケージのどの処理が多くの時間を費やしているのか、費やした時間が過去の実行時間との比較で妥当な時間なのかなどを確認し、問題の箇所を特定していきます。そのためには次のポイントを確認します。
• 各実行フェーズの実行時間
• 各タスクの実行時間
• パフォーマンスの履歴との比較
パッケージの各実行フェーズの実行時間を確認するには、パッケージ実行時のログ記録レベルを変更しパフォーマンス統計が記録することが必要となります。パッケージ実行ダイアログの詳細設定タブにあるログ記録レベルを”パフォーマンス”か詳細を選択します。これにより catalog.execution_component_phasesビューを使用して各フェーズで費やされた時間を確認することができます。
各タスクの実行時間は概要のレポートで確認できます。概要レポートにはタスクごとに実行フェーズで費やされた時間が表示されます。この情報は、catalog.executable_statisticsビューを参照することでも確認することが可能です。
概要のレポートにある”パフォーマンスの表示”リンクからパフォーマンスに関するレポートを表示することができます。実行のパフォーマンスのレポートではパッケージを過去に実行した時の実行時間がグラフや一覧として表示され、比較を容易に行うことできます。
グラフなどのパッケージの実行日時や実行時間はcatalog.executionsビューを参照することでも確認できます。
ダッシュボードに表示されているパッケージ実行の情報は定期的にSQL ServerエージェントのSSIS Server Maintenance Jobジョブによって削除されます。SSIS Server Maintenance Job ジョブは既定で1日1回 0:00:00 に実行されます。履歴の保有期間は365日となっており、SSISDBカタログのプロパティから変更することが可能です。