リソース・マネージャの概念

リソース・マネージャが対処する問題

  • 過剰なオーバーヘッドの発生
  • 非効率的なスケジューリング
  • 不適当なリソースの割当て
  • パラレル実行サーバーやアクティブ・セッションなど、データベース固有のリソースを管理できない

リソース・マネージャによるこれらの問題の対処方法

  • システムにかかる負荷やユーザー数に関係なく、特定のユーザーの処理リソースが最小量になることを保証する。
  • 様々なユーザーおよびアプリケーションに、比率を指定してCPUタイムを割り当てて、使用可能な処理リソースを分配する。
  • ユーザー・グループのメンバーが実行する処理の並列度を制限する。
  • アクティブ・セッション・プールを作成する。このプールは、ユーザー・グループ内で同時にアクティブにできる指定された最大数のユーザー・セッションで構成されている。大数を超える追加セッションは実行待ちのキューに送られるが、キューで待機しているジョブが終了するまでのタイムアウト周期を指定できる。
  • 管理者が定義した基準に基づいて、グループ間でユーザーの自動切替えを行う。特定のユーザー・グループのメンバーが、指定された時間より長時間実行されるセッションを作成した場合、そのセッションをリソース要件が異なる他のユーザー・グループに自動的に切り替えることができる。
  • ある操作に対するオプティマイザの見積り実行時間が指定された制限を超える場合は、その操作が実行されないようにする。
  • UNDOプールを作成する。このプールは、ユーザー・グループで消費可能な量のUNDO領域から構成される。
  • セッションのアイドル時間を制限する。
  • 特定のリソース割当て方法を使用するように、インスタンスを構成する。
  • 長時間実行SQL文の取消し、および長時間実行セッションの終了を行う。

データベース・リソース・マネージャの要素

リソース・コンシューマ・グループ

リソースの処理要件に基づいてグループ化されたユーザー・セッション。

リソース・プラン

リソース・コンシューマ・グループへのリソースの割当て方法を指定するディレクティブを含む。
サブプラン

  • プランにはリソース・コンシューマ・グループ以外に、サブプランも含めることができる。
  • サブプランは、プラン階層内で、リソース・コンシューマ・グループと同じ位置を占める。
リソース割当て方法

データベース・リソース・マネージャによって、リソース・コンシューマ・グループとリソース・プランに使用される特定のリソースを割り当てるための方法/方針。

リソース・プラン・ディレクティブ

管理者が、リソース・コンシューマ・グループを特定のプランに対応付け、リソース・コンシューマ・グループ間でリソースを割り当てるために使用するディレクティブ。
CPU方法

  • コンシューマ・グループまたはサブプラン間でのCPUリソースの割当て方法を指定する。
  • 複数レベル(最大8レベル)のCPUリソース割当てにより、プラン・スキーマ内でCPU使用の優先順位を設定できる。
  • レベル2のコンシューマ・グループおよびサブプランは、レベル1に割り当てられなかったリソース、またはレベル1のコンシューマ・グループやサブプランによって使用されなかったリソースを使用する。同じ規則が、レベル3、4、以下同様に適用される。

キューイングを備えたアクティブ・セッション・プール

  • コンシューマ・グループ内で同時にアクティブにできるセッションの最大数を制御できる。
  • この最大数によって、アクティブ・セッション・プールが構成される。
  • プールがいっぱいのためにセッションを初期化できない場合は、セッションがキューに送られる。アクティブなセッションが終了すると、キュー内の最初のセッションが実行のためにスケジュールされる。
  • 実行キュー内で実行されるのを待機しているジョブがタイムアウトするまでのタイムアウト周期も指定できる。ジョブがタイムアウトすると、エラーが発生して終了する。
  • パラレル実行セッションは全体で1つのアクティブ・セッションとして数えられる。

並列度制限
並列度制限を指定すると、コンシューマ・グループ内の任意の操作における最大の並列度を制御できる。
コンシューマ・グループの自動切替え
この方法では、他のコンシューマ・グループにセッションを自動的に切り替えるための基準を指定して、リソースを制御できる。

  • 切替えグループ: 他の基準(以降の基準)が満たされた場合に、このセッションを切り替える先のコンシューマ・グループを指定する。
  • 切替え時間: 他のコンシューマ・グループに切り替えるまでにセッションが実行できる時間の長さを指定する。
  • コールでの切替え時間: 他のコンシューマ・グループに切り替えるまでにセッションが実行できる時間の長さを指定する。最上位コールが終了すると、そのセッションは元のコンシューマ・グループにリストアされる。
  • 見積りの使用: データベースが独自に見積った操作の実行時間を使用するかどうかを指定する。

SQLの取消しとセッションの終了

  • ディレクティブの指定によって、長時間実行SQL問合せの取消し、または長時間実行セッションの終了ができる。
  • これを指定するには、CANCEL_SQLまたはKILL_SESSIONを切替えグループとして設定する。

実行時間制限
ある操作に許可される最大の実行時間を指定できる。
UNDOプール

  • UNDOプールは、コンシューマ・グループごとに指定できる。
  • UNDOプールによって、コンシューマ・グループが生成できるUNDOの合計量が制御される。

アイドル時間制限
セッションのアイドル時間を指定できる。指定した時間をすぎるとセッションは終了する。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License