Teradataでは、ユーティリティを含むシステム スロットルを使用しないことをお勧めします。システム スロットルを作成する場合は、ユーティリティを明示的に除外してください。ただし、システム スロットルをユーティリティ作業に適用する場合は、ハング ジョブを防ぐためにシステム スロットル制限がユーティリティ スロットル制限よりも大きいことを確認してください。
デッドロックにつながる次の状況について考えます。FastLoadユーティリティに適用されるユーティリティ スロットルとシステム スロットルがあります。両方のスロットルは2に設定されています。2つのFastLoadジョブが実行依頼されると、以下のイベントが発生します。
- 最初のFastLoadでは、関連付けられている制御SQLセッションを使用して作業の単位を開始します。システム スロットル カウンタは1です。
- 2番目のFastLoadでは、関連付けられている制御SQLセッションを使用して作業の単位を開始します。システム スロットル カウンタは2です。
- 1つ目のFastLoadは、それに関連付けられた補助的なSQLセッションの再起動ログを更新しようとしていますが、システム スロットル カウンタがすでに2であるために遅延します。
- 2つ目のFastLoadは、それに関連付けられた補助的なSQLセッションの再起動ログを更新しようとしていますが、システム スロットル カウンタがすでに2であるために遅延します。
両方のFastLoadが無期限に遅延します。
次に、より良い結果となる同じような状況について考えます。以下のイベントでは、システム スロットルは3に設定されており、ユーティリティ スロットルよりも大きいです。
- 最初のFastLoadでは、関連付けられている制御SQLセッションを使用して作業の単位を開始します。システム スロットル カウンタは1です。
- 2番目のFastLoadでは、関連付けられている制御SQLセッションを使用して作業の単位を開始します。システム スロットル カウンタは2です。
- 1つ目のFastLoadは、それに関連付けられた補助的なSQLセッションの再起動ログを更新しようとしています。システム スロットル カウンタは制限の3です。更新が完了すると、システム スロットル カウンタは2に戻ります。
- 2つ目のFastLoadは、それに関連付けられた補助的なSQLセッションの再起動ログを更新しようとしています。システム スロットル カウンタは制限の3です。更新が完了すると、システム スロットル カウンタは2に戻ります。
- 最初のFastLoadでは、関連付けられている制御SQLセッションを使用して作業の単位を終了します。システム スロットル カウンタは1です。
- 2つ目のFastLoadでは、関連付けられている制御SQLセッションを使用して作業の単位を終了します。システム スロットル カウンタは0です。