CS_RESOURCE_MANAGERパッケージ

CS_RESOURCE_MANAGERパッケージは、コンシューマ・グループ、プランを作成し、コンシューマ・グループ・パラメータおよびプラン・ディレクティブを更新するためのインタフェースを提供します。

CS_RESOURCE_MANAGERサブ・プログラムの要約

サブプログラム 摘要
CLEAR_PENDING_AREAプロシージャ このプロシージャは、リソース・マネージャに対する保留中の変更内容をクリアします。
CREATE_CONSUMER_GROUPプロシージャ このプロシージャは、リソース・コンシューマ・グループを定義します。
CREATE_PENDING_AREAプロシージャ このプロシージャは、リソース・マネージャ・オブジェクトに変更を加えるペンディング・エリアを作成します。
CREATE_PLANプロシージャ このプロシージャは、リソース・プランを定義するエントリを作成します。
CREATE_PLAN_DIRECTIVEプロシージャ このプロシージャは、リソース・プラン・ディレクティブを作成します。
DELETE_CONSUMER_GROUPプロシージャ このプロシージャは、リソース・コンシューマ・グループを削除します。
DELETE_PLANプロシージャ このプロシージャは、指定の計画およびその参照するすべてのプラン・ディレクティブを削除します、
DELETE_PLAN_DIRECTIVEプロシージャ このプロシージャは、リソース・プラン・ディレクティブを削除します。
LIST_CURRENT_RULESファンクション この関数は、デフォルト・プランの現在の設定を返します。
LIST_DEFAULT_RULESファンクション この関数は、すべてのコンシューマ・グループのデフォルト値を返します。
REVERT_TO_DEFAULT_VALUESプロシージャ このプロシージャは、デフォルトのリソース・マネージャ・プラン・プロパティをデフォルト値に戻します。
SET_CONSUMER_GROUP_MAPPINGプロシージャ このプロシージャは、セッションのログイン属性およびランタイム属性に基づいて、セッションをコンシューマ・グループにマップするエントリの追加、削除または変更を行います。
SET_CONSUMER_GROUP_MAPPING_PRIプロシージャ セッションが持つ複数の属性を使用して、セッションをコンシューマ・グループにマップできます。このプロシージャでは、属性のマッピングにおける優先順位を指定します。
SUBMIT_PENDING_AREAプロシージャ このプロシージャは、リソース・マネージャに対する保留中の変更を発行します。変更を検証してコミットした後(この変更が有効な場合)、ペンディング・エリアをクリアします。
UPDATE_PLAN_DIRECTIVEプロシージャ この手順を使用して、Autonomous AI Databaseに付属するデフォルトの事前定義済プラン、つまり、指定したコンシューマ・グループのDWCS_PLANおよびOLTP_PLANを更新します。
UPDATE_PLAN_DIRECTIVE_ADVプロシージャ この手順を使用して、指定したコンシューマ・グループのユーザー定義リソース・マネージャ・プランを更新します。

CLEAR_PENDING_AREAプロシージャ

このプロシージャは、リソース・マネージャに対する保留中の変更内容をクリアします。

構文

CS_RESOURCE_MANAGER.CLEAR_PENDING_AREA;

CREATE_CONSUMER_GROUPプロシージャ

このプロシージャは、リソース・コンシューマ・グループを定義します。

構文

CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
   consumer_group  IN VARCHAR2,
   comment         IN VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 摘要
consumer_group コンシューマ・グループの名前
comment ユーザー・コメント

使用上のノート

次の方法で、コンシューマ・グループにセッションを配置する方法を決定できます。

  • 接続文字列の割当て:次に示すように、データベース接続文字列にCONSUMER_GROUPを指定します。この方法はマッピングよりも優先され、定義されたマッピングはすべてオーバーライドされます。
  (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.us-ashburn-
1.oraclecloud.com))(connect_data=(service_name=my_database_low.adb.oraclecloud.com)(CONSUMER_GROUP=OLTP_LOW))(security=(ssl_server_dn_match=yes)))
  • マッピング・ルール: set_consumer_group_mappingおよびset_consumer_group_mapping_priサブプログラムを使用して、ユーザー名やアプリケーション名などの属性に基づいて、セッションまたはアプリケーションをコンシューマ・グループに割り当てます。

BEGIN
  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'OLTP_HIGH',
    comment        => 'Priority OLTP sessions');

  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'OLTP_LOW',
    comment        => 'Background/low-priority OLTP');

  CS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
    consumer_group => 'LH_BATCH',
    comment        => 'Batch / reporting workloads');
END;
/

CREATE_PENDING_AREAプロシージャ

このプロシージャは、リソース・マネージャ・オブジェクトを変更するためのペンディング・エリアを作成します。

ペンディング・エリアは、プラン・スキーマを変更するためのスクラッチ領域とみなされます。管理者は、このペンディング・エリアを作成し、必要に応じて変更を加え、場合によってその変更を検証し、その実行が完了したときのみ、その変更内容がアクティブになります。

構文

CS_RESOURCE_MANAGER.CREATE_PENDING_AREA;

使用上のノート

ペンディング・エリアがアクティブな間は、変更された現行のプラン・スキーマを適切なユーザー・ビューから選択して、いつでも表示できます。詳細は、「データベース・リソース・マネージャの構成とステータスの表示」を参照してください。

現行の変更を中止する場合は、いつでもペンディング・エリアをクリアできます。また、VALIDATEプロシージャをコールして、変更が有効になっているかどうかを確認できます。変更は、エントリ・グループの一貫性を維持するための指定の順序で実行する必要はありません。これらのチェックは、ペンディング・エリアが実行されるときにも暗黙的に行われます。

ノート

ノート: Oracleでは、孤立したコンシューマ・グループ(つまり、そのコンシューマ・グループを参照するプラン・ディレクティブがないコンシューマ・グループの)が可能ですこれは、現在は使用しないが将来使用するコンシューマ・グループを管理者があらかじめ作成できるようにするためです。

リソース・プランでは、次のルールを厳守してください。これらのルールは、VALIDATEまたはSUBMITプロシージャが実行されるたびにチェックされます。

  • プラン・スキーマにループがないこと。

  • プラン・ディレクティブが参照するすべての計画およびコンシューマ・グループがあること。

  • すべての計画に、計画またはコンシューマ・グループのいずれかを参照するプラン・ディレクティブがあること。

  • リソース割当て方法がEMPHASISの場合は、指定レベルでのパーセントの合計が100を超えないこと。

  • アクティブなインスタンスでトップレベルの計画として現在使用されている計画を削除しないこと。

  • 指定計画でのプラン・ディレクティブが28を超えない場合(つまり、計画は28以上の子を持つことはできません)。

  • アクティブなプラン・スキーマ内のコンシューマ・グループが28を超えないこと。

  • 計画とコンシューマ・グループは同じネームスペースを使用するため、コンシューマ・グループと同じ名前の計画がないこと。

  • アクティブなプラン・スキーマ内のどこかに、OTHER_GROUPSのプラン・ディレクティブが存在する必要があります。これにより、現在アクティブな計画がカバーしていないセッションには、OTHER_GROUPSディレクティブで指定されたリソースが割り当てられます。

VALIDATEまたはSUBMITプロシージャによるチェック時に、前述のルールのいずれかに違反していると、それを通知するエラー・メッセージが戻されます。変更して1つ以上の問題を修正し、VALIDATEまたはSUBMITプロシージャを再発行できます。

CREATE_PLANプロシージャ

このプロシージャは、リソース・プランを定義するエントリを作成します。

構文

CS_RESOURCE_MANAGER.CREATE_PLAN (
   plan                       IN   VARCHAR2,
   comment                    IN   VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 摘要
plan リソース・プランの名前
comment ユーザー・コメント

BEGIN
  CS_RESOURCE_MANAGER.CREATE_PLAN(
    plan    => 'OLTP_LH_PLAN',
    comment => 'Split resources between OLTP and Lakehouse workload types');
END;
/

CREATE_PLAN_DIRECTIVEプロシージャ

このプロシージャは、リソース・プラン・ディレクティブを作成します。

構文

CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
   plan                          IN VARCHAR2,
   consumer_group                IN VARCHAR2,
   comment                       IN VARCHAR2 DEFAULT NULL,
   shares                        IN NUMBER   DEFAULT NULL,
   utilization_limit             IN NUMBER   DEFAULT NULL,
   switch_action                 IN VARCHAR2 DEFAULT NULL,
   cpu_time_limit                IN NUMBER   DEFAULT NULL,
   io_megabytes_limit            IN NUMBER   DEFAULT NULL,
   io_reqs_limit                 IN NUMBER   DEFAULT NULL,
   io_logical_limit              IN NUMBER   DEFAULT NULL,
   elapsed_time_limit            IN NUMBER   DEFAULT NULL,
   max_idle_time                 IN NUMBER   DEFAULT NULL,
   max_idle_blocker_time         IN NUMBER   DEFAULT NULL,
   active_session_limit          IN NUMBER   DEFAULT NULL,
   active_session_timeout        IN NUMBER   DEFAULT NULL,
   parallel_degree_limit         IN NUMBER   DEFAULT NULL,
   concurrency_limit             IN NUMBER   DEFAULT NULL,
   session_pga_limit             IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout        IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout_action IN NUMBER   DEFAULT NULL);

パラメータ

パラメータ 摘要
plan リソース・プランの名前
consumer_group コンシューマ・グループの名前
comment プラン・ディレクティブについてのコメント。
shares

コンシューマ・グループのリソース割当ての共有。共有は、コンシューマ・グループが他のコンシューマ・グループに対して取得するCPUおよびIOリソースの量を決定します。たとえば、2のシェアを持つコンシューマ・グループは、1のシェアを持つコンシューマ・グループよりも2倍のCPUおよびIOリソースを取得します。

プラン内のコンシューマ・グループに共有を指定しない場合、そのコンシューマ・グループの共有は1に設定されます。

utilization_limit コンシューマ・グループが取得できる最大CPUおよびI/Oリソースを決定するリソース制限。
switch_action ディレクティブで指定された制限に達したときに実行されるアクション。有効な値は、cancel_sqlkill_sessionまたは切り替えるコンシューマ・グループ名です。
cpu_time_limit アクションの実行前にセッションを実行できるCPU時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。
io_megabytes_limit アクションが実行される前に、セッションで発行できるI/Oの容量(MB)。デフォルトのNULLは、無制限を意味します。
io_reqs_limit アクションが実行される前に、セッションで発行できるI/Oリクエスト数。デフォルトのNULLは、無制限を意味します。
io_logical_limit switch_actionで指定されたアクションをトリガーする論理I/Oの数。
elapsed_time_limit switch_actionによって指定されたアクションがトリガーされるまでの経過時間(秒単位)。
max_idle_time セッションが終了するまでにセッションをアイドル状態にできる秒数。デフォルトのNULLは、無制限を意味します。
max_idle_blocker_time セッションがロックまたはほかのセッションに必要なリソースを保持している場合に、セッションが終了するまでにセッションをアイドル状態にできる最大時間(秒)。
active_session_limit アクティブ・コールを同時に持つことができるセッションの最大数。
active_session_timeout 非アクティブ・セッション・キューにあるコール(実行待ち状態)がタイムアウトする時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。
parallel_degree_limit 任意の操作の並列度を制限します。デフォルトのNULLは、無制限を意味します。工程をシリアルにするには、値1を使用します。
concurrency_limit 同時実行性レベルと並列度(DOP)を設定します。DOP1を作ることができます。
session_pga_limit

このコンシューマ・グループのセッションが終了する前に割当て可能な、チューニングできないPGAの最大量(MB)。NULL (デフォルト)は、制限がないことを示します。

チューニング可能なPGAを割り当てるSQL操作(一時領域の使用を選択できる操作)は、この制限によって制御されません。

parallel_queue_timeout パラレル・ステートメントが、エラー(ORA-07454)によって削除および終了するまでに、コンシューマ・グループ・パラレル・ステートメント・キュー内に残しておく時間(秒)を指定します。
parallel_queue_timeout_action

parallel_queue_timeoutによってパラレル・ステートメントがキューから削除されたときに実行するアクションを指定します。

次の値があります。

  • CANCEL: パラレル文は、エラーORA-7454により終了します
  • RUN: パラレル・サーバーが使用できない場合、SQL文がすぐに実行され、ダウングレードされる可能性があります。

使用上のノート

  • Autonomous AI Databaseに付属するデフォルトの事前定義済プラン(DWCS_PLANおよびOLTP_PLAN)にはプラン・ディレクティブを作成できません。

  • 共有を除くすべてのパラメータは、デフォルトでNULLに設定されます。

  • parallel_queue_timeoutが指定されていて、parallel_queue_timeout_actionが指定されていない場合は、エラーがスローされます。

BEGIN

  -- High-priority OLTP gets 8 CPU/IO shares and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OLTP_HIGH',
    comment               => 'OLTP high priority',
    shares                => 8,
    parallel_degree_limit => 1
  );

  -- Lower-priority OLTP gets 4 CPU/IO shares and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OLTP_LOW',
    comment               => 'OLTP low priority',
    shares                => 2,
    parallel_degree_limit => 1
  );

  -- Lakehouse / batch gets 4 shares and the degree of parallelism is capped to 4.
  -- If a parallel SQL statement waits in the queue for more than 60 seconds, it will be canceled.
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                          => 'OLTP_LH_PLAN',
    consumer_group                => 'LH_BATCH',
    comment                       => 'Lakehouse/reporting workloads',
    shares                        => 4,
    parallel_degree_limit         => 4,     -- cap DOP within this group (adjust as needed)
    parallel_queue_timeout        => 60,
    parallel_queue_timeout_action => 'CANCEL'
  );

  -- Catch-all for anything unmapped; sessions that are not mapped to a consumer group get 1 CPU/IO share and no parallelism
  CS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
    plan                  => 'OLTP_LH_PLAN',
    consumer_group        => 'OTHER_GROUPS',
    comment               => 'Catch-all for unmapped sessions',
    shares                => 1,
    parallel_degree_limit => 1
  );
END;
/

DELETE_CONSUMER_GROUPプロシージャ

このプロシージャは、リソース・コンシューマ・グループを削除します。

構文

CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group IN VARCHAR2);

パラメータ

パラメータ 摘要
consumer_group 削除するコンシューマ・グループの名前。

ノート: Autonomous AI Databaseに付属する事前定義済コンシューマ・グループ(TPURGENT、TP、HIGH、MEDIUMおよびLOW)は削除できません。

CS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group ==> <consumer_group_name>);

DELETE_PLANプロシージャ

このプロシージャは、指定の計画およびそのプランが参照するすべてのプラン・ディレクティブを削除します、

構文

CS_RESOURCE_MANAGER.DELETE_PLAN (
  plan    IN VARCHAR2,
  cascade IN BOOLEAN DEFAULT FALSE);

パラメータ

パラメータ 摘要
plan 削除するリソース・プランの名前。

ノート: Autonomous AI Databaseに付属する事前定義済プラン(DWCS_PLANおよびOLTP_PLAN)は削除できません。
cascade 指定したプランおよびそのすべての子孫(プラン・ディレクティブ、サブプラン、コンシューマ・グループ)を削除するかどうかを示すフラグ。必須オブジェクトおよび必須ディレクティブは削除されません。デフォルト値はfalseです。カスケードONでは、DELETE_PLANでエラーが発生した場合は、操作がロールバックされるため、何も削除されません。

CS_RESOURCE_MANAGER.DELETE_PLAN (
  plan    ==> <plan_name>);

DELETE_PLAN_DIRECTIVEプロシージャ

このプロシージャは、リソース・プラン・ディレクティブを削除します。

構文

CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan              IN VARCHAR2,
   consumer_group    IN VARCHAR2);

パラメータ

パラメータ 摘要
plan リソース・プランの名前。

ノート: Autonomous AI Databaseに付属するデフォルトの事前定義済プラン(DWCS_PLANおよびOLTP_PLAN)のプラン・ディレクティブは削除できません。
consumer_group コンシューマ・グループの名前

CS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan            => <plan_name>,
   consumer_group  => <consumer_group_name>);

LIST_CURRENT_RULESファンクション

このファンクションは、デフォルト計画の現在の設定を戻します。

ノート

ノート: LIST_CURRENT_RULESは、カスタム・プランの設定を表示するために使用できません。カスタム・プランを使用している場合は、DBRMビューを使用して設定を表示できます。

構文

CS_RESOURCE_MANAGER.LIST_CURRENT_RULES
   RETURN TABLE;

SELECT * FROM CS_RESOURCE_MANAGER.LIST_CURRENT_RULES();

CONSUMER_GROUP ELAPSED_TIME_LIMIT IO_MEGABYTES_LIMIT SHARES CONCURRENCY_LIMIT DEGREE_OF_PARALLELISM
-------------- ------------------ ------------------ ------ ----------------- ---------------------
HIGH                                                      4                 3                     3
MEDIUM                                                    2                 2                     9
LOW                                                       1               900                     1

LIST_DEFAULT_RULESファンクション

このファンクションは、すべてのコンシューマ・グループのデフォルト値を返します。

構文

CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES
  RETURN TABLE;

使用上のノート

  • デフォルトでは、TPURGENTコンシューマ・グループの並列度ポリシー値はMANUALです。CS_RESOURCE_MANAGER.LIST_DEFAULT_RULESファンクションは、TPURGENTコンシューマ・グループのDEGREE_OF_PARALLELISMのデフォルト値の値を表示しません。

SELECT * FROM CS_RESOURCE_MANAGER.LIST_DEFAULT_RULES();
CONSUMER_GROUP ELAPSED_TIME_LIMIT IO_MEGABYTES_LIMIT SHARES CONCURRENCY_LIMIT DEGREE_OF_PARALLELISM
-------------- ------------------ ------------------ ------ ----------------- ---------------------
HIGH                            0                  0      4                 3                     1
MEDIUM                          0                  0      2                 1                     1
LOW                             0                  0      1               300                     1
TP                              0                  0      8               300                     1
TPURGENT                        0                  0     12               300

REVERT_TO_DEFAULT_VALUESプロシージャ

このプロシージャは、デフォルトのリソース・マネージャ・プラン・プロパティをデフォルト値に戻します。

ノート

ノート:このプロシージャは、カスタム・プランでは使用できません。また、Autonomous AI Databaseに付属するデフォルトのリソース・マネージャ・プラン(DWCS_PLANおよびOLTP_PLAN)への変更を元に戻すためにのみ使用できます。

構文

CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
   consumer_group         IN VARCHAR2,
   shares                 IN BOOLEAN   DEFAULT FALSE,
   concurrency_limit      IN BOOLEAN   DEFAULT FALSE);

パラメータ

パラメータ 摘要
consumer_group

元に戻すコンシューマ・グループを指定します。

有効な値は、HIGHMEDIUMLOWTPまたはTPURGENTです。

shares 値が TRUEの場合、サービスの共有をデフォルト値に戻します。
concurrency_limit 値がTRUEの場合は、サービスのconcurrency_limitをデフォルト値に戻します。concurrency_limitを元に戻すと、concurrency_limitdegree_of_parallelismの両方の値がデフォルト値に設定されます。

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
      consumer_group => 'MEDIUM',
      concurrency_limit => TRUE);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(
      consumer_group => 'HIGH',
      shares => TRUE);
END;
/

SET_CONSUMER_GROUP_MAPPINGプロシージャ

このプロシージャは、セッションのログイン属性およびランタイム属性に基づいて、セッションをコンシューマ・グループにマップするエントリの追加、削除または変更を行います。

構文

CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
   attribute        IN VARCHAR2,
   value            IN VARCHAR2,
   consumer_group   IN VARCHAR2 DEFAULT NULL);

パラメータ

パラメータ 摘要
attribute 追加または変更するマッピング属性。リストされている定数の1つを指定します。
value 一致させる属性値。これには、絶対マッピングと正規表現の両方が含まれます。
consumer_group マップされたコンシューマ・グループの名前。マッピングを削除する場合はNULLを指定します。

使用上のノート

  • 指定された属性および値に対するマッピングが存在しない場合は、指定されたコンシューマ・グループへのマッピングが作成されます。指定された属性および値に対するマッピングがすでに存在する場合、マッピング先のコンシューマ・グループは、指定された属性および値を持つコンシューマ・グループに更新されます。consumer_group引数がNULLの場合は、指定された属性および値からのマッピングがすべて削除されます。

  • このサブプログラムでは、値パラメータ用の単純な正規表現がサポートされています。SQLの'LIKE'演算子と同じセマンティクスを実装します。具体的には、マルチ文字のワイルドカードとして'%'、単一文字のワイルドカードとして'_'が使用されます。'\'文字を使用して、ワイルドカードをエスケープできます。属性が次のいずれかの場合にのみ、ワイルドカードを使用できることに注意してください。

    • CLIENT_OS_USER

    • CLIENT_PROGRAM

    • CLIENT_MACHINE

    • MODULE_NAME

    • MODULE_NAME_ACTION

    • SERVICE_MODULE

    • SERVICE_MODULE_ACTION

  • CS_RESOURCE_MANAGER.CLIENT_PROGRAMのコンシューマ・グループ・マッピング比較を実行する際、@記号とそれ以降の文字がV$SESSION.PROGRAMから除去されてから、指定したCLIENT_PROGRAM値と比較されます。

  • 前述の例に示すように、ユーザー名やアプリケーション名などの属性を使用して、コンシューマ・グループにセッションを配置する方法を決定できます。

BEGIN
  -- Map schema APP_USER to OLTP_HIGH
  CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
    attribute  => 'ORACLE_USER',
    value      => 'APP_USER',
    consumer_group => 'OLTP_HIGH');

  CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING(
    attribute  => 'ORACLE_USER',
    value      => 'LH_USER',
    consumer_group => 'LH_BATCH');
END;
/

SET_CONSUMER_GROUP_MAPPING_PRIプロシージャ

セッションの複数の属性を使用して、セッションをコンシューマ・グループにマップできます。このプロシージャでは、属性のマッピングにおける優先順位を指定します。

構文

CS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING_PRI(
   explicit               IN NUMBER,
   oracle_user            IN NUMBER,
   service_name           IN NUMBER,
   client_program         IN NUMBER,
   module_name            IN NUMBER,
   module_name_action     IN NUMBER,
   client_id              IN NUMBER DEFAULT 11);

パラメータ

パラメータ 摘要
explicit 明示的マッピングの優先順位。
oracle_user Oracleユーザー名のマッピングの優先順位。
service_name クライアント・サービス名のマッピングの優先順位。
client_program クライアント・プログラムのマッピングの優先順位。
module_name アプリケーション・モジュール名のマッピングの優先順位。
module_name_action アプリケーション・モジュール名およびアクション・マップの優先順位。
client_id クライアント識別子。

使用上のノート

  • このプロシージャには、疑似属性明示を引数として含めることが必要です。次に設定する必要があります:
    1. これは、明示的なコンシューマ・グループの切替えに最も高い優先度が指定されていることを示します。DBMS_SESSION.SWITCH_CURRENT_CONSUMER_GROUPを使用してコンシューマ・グループを切り替えると、コンシューマ・グループ・マッピングより優先されます。
  • 優先順位を指定する値は、それぞれ1から11の一意の整数にしてください。優先順位1から11を使用する場合、優先順位が最も高いのは1、最も低いのは10です。

  • ユーザー名やアプリケーション名などの属性を使用して、セッションをコンシューマ・グループに配置する方法を決定できます。例については、「ステップ4: コンシューマ・グループ・マッピングの作成」を参照してください。

SUBMIT_PENDING_AREAプロシージャ

このプロシージャは、リソース・マネージャに対する保留中の変更を発行します。変更を検証してコミットした後(この変更が有効な場合)、ペンディング・エリアをクリアします。

ノート

ノート: SUBMIT_PENDING_AREAへのコールは、VALIDATE_PENDING_AREAが成功していても失敗する場合があります。これは、VALIDATE_PENDING_AREAコール後に、削除中の計画がインスタンスによってSUBMIT_PENDING_AREAコールするまでにロードされてしまうことが発生する可能性があります。

構文

CS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA;

UPDATE_PLAN_DIRECTIVEプロシージャ

この手順を使用して、Autonomous AI Databaseに付属するデフォルトの事前定義済プラン、つまり、指定したコンシューマ・グループのDWCS_PLANおよびOLTP_PLANを更新します。

ノート

ノート:この手順では、カスタム・プランの設定を更新できません。カスタム・ユーザー定義プラン属性を更新するには、UPDATE_PLAN_DIRECTIVE_ADVプロシージャを使用します。

構文

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
   consumer_group         IN VARCHAR2,
   io_megabytes_limit     IN NUMBER   DEFAULT NULL,
   elapsed_time_limit     IN NUMBER   DEFAULT NULL,
   shares                 IN NUMBER   DEFAULT NULL,
   concurrency_limit      IN NUMBER   DEFAULT NULL);

パラメータ

パラメータ 摘要
consumer_group

更新するコンシューマ・グループを指定します。

有効な値は、HIGHMEDIUMLOWTPまたはTPURGENTです。

io_megabytes_limit

SQL操作で発行できるI/Oの最大MBを指定します。

制限をクリアするには、NULL値を指定します。

elapsed_time_limit

SQL操作を実行できる最大時間(秒)を指定します。

制限をクリアするには、NULL値を指定します。

shares シェアの値を指定します。他のコンシューマ・グループと比較してシェアの数が多いほど、コンシューマ・グループのCPUおよびI/O優先度が高くなります。
concurrency_limit

実行可能な同時SQL文の最大数を指定します。

このパラメータは、MEDIUMコンシューマ・グループでのみ有効です。

使用上のノート

  • 指定されたサービス内のSQL文が指定されたランタイム制限(elapsed_time_limit)を超えたり、指定された量(io_megabytes_limit)より多くのI/Oを実行した場合、そのSQL文は終了されます。

  • concurrency_limitパラメータが指定されている場合、consumer_groupの有効な値はMEDIUMのみです。

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'HIGH',
      shares => 8);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'MEDIUM',
      shares => 2);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'LOW',
      shares => 1);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
      consumer_group => 'HIGH',
      io_megabytes_limit => null,
      elapsed_time_limit => null);
END;
/

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(
     consumer_group => 'MEDIUM',
     concurrency_limit => 2);
END;
/

UPDATE_PLAN_DIRECTIVE_ADVプロシージャ

指定したコンシューマ・グループのユーザー定義リソース・マネージャ・プランを更新するには、この手順を使用します。

ノート

ノート:この手順を使用して、Autonomous AI Databaseに付属するデフォルトの事前定義済プラン(DWCS_PLANおよびOLTP_PLAN)を更新することはできません。事前定義済のデフォルト・リソース・プランを更新するには、UPDATE_PLAN_DIRECTIVEプロシージャを使用します。

構文

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE_ADV (
   plan                          IN VARCHAR2 DEFAULT NULL,
   consumer_group                IN VARCHAR2,
   comment                       IN VARCHAR2 DEFAULT NULL,
   shares                        IN NUMBER   DEFAULT NULL,
   utilization_limit             IN NUMBER   DEFAULT NULL,
   switch_action                 IN VARCHAR2 DEFAULT NULL,
   cpu_time_limit                IN NUMBER   DEFAULT NULL,
   io_megabytes_limit            IN NUMBER   DEFAULT NULL,
   io_reqs_limit                 IN NUMBER   DEFAULT NULL,
   io_logical_limit              IN NUMBER   DEFAULT NULL,
   elapsed_time_limit            IN NUMBER   DEFAULT NULL,
   max_idle_time                 IN NUMBER   DEFAULT NULL,
   max_idle_blocker_time         IN NUMBER   DEFAULT NULL,
   active_session_limit          IN NUMBER   DEFAULT NULL,
   active_session_timeout        IN NUMBER   DEFAULT NULL,
   parallel_degree_limit         IN NUMBER   DEFAULT NULL,
   concurrency_limit             IN NUMBER   DEFAULT NULL,
   session_pga_limit             IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout        IN NUMBER   DEFAULT NULL,
   parallel_queue_timeout_action IN NUMBER   DEFAULT NULL);

パラメータ

パラメータ 摘要
plan リソース・プランの名前。
consumer_group コンシューマ・グループの名前
comment プラン・ディレクティブについてのコメント。
shares

コンシューマ・グループのリソース割当ての共有。共有は、コンシューマ・グループが他のコンシューマ・グループに対して取得するCPUおよびIOリソースの量を決定します。たとえば、2のシェアを持つコンシューマ・グループは、1のシェアを持つコンシューマ・グループよりも2倍のCPUおよびIOリソースを取得します。

プラン内のコンシューマ・グループに共有を指定しない場合、そのコンシューマ・グループの共有は1に設定されます。

utilization_limit コンシューマ・グループが取得できる最大CPUおよびI/Oリソースを決定するリソース制限。
switch_action ディレクティブで指定された制限に達したときに実行されるアクション。有効な値は、cancel_sqlkill_sessionまたは切り替えるコンシューマ・グループ名です。
cpu_time_limit アクションの実行前にセッションを実行できるCPU時間(秒)を指定します。デフォルトはNULLです。これは無制限を意味します。
io_megabytes_limit アクションが実行される前に、セッションで発行できるI/Oの容量(MB)。デフォルトのNULLは、無制限を意味します。
io_reqs_limit アクションが実行される前に、セッションで発行できるI/Oリクエスト数。デフォルトのNULLは、無制限を意味します。
io_logical_limit switch_actionで指定されたアクションをトリガーする論理I/Oの数。
elapsed_time_limit switch_actionで指定されたアクションをトリガーする経過時間(秒単位)。
max_idle_time セッションが終了するまでにセッションをアイドル状態にできる秒数。デフォルトのNULLは、無制限を意味します。
max_idle_blocker_time セッションがロックまたはほかのセッションに必要なリソースを保持している場合に、セッションが終了するまでにセッションをアイドル状態にできる最大時間(秒)。
active_session_limit アクティブ・コールを同時に持つことができるセッションの最大数。
active_session_timeout 非アクティブ・セッション・キューにあるコール(実行待ち状態)がタイムアウトする時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。
parallel_degree_limit 任意の操作の並列度を制限します。デフォルトのNULLは、無制限を意味します。工程をシリアルにするには、値1を使用します。
concurrency_limit 同時実行性レベルと並列度(DOP)を設定します。DOP1を作ることができます。
session_pga_limit

このコンシューマ・グループのセッションが終了する前に割当て可能な、チューニングできないPGAの最大量(MB)。NULL (デフォルト)は、制限がないことを示します。

チューニング可能なPGAを割り当てるSQL操作(一時領域の使用を選択できる操作)は、この制限によって制御されません。

parallel_queue_timeout パラレル・ステートメントが、エラー(ORA-07454)によって削除および終了するまでに、コンシューマ・グループ・パラレル・ステートメント・キュー内に残しておく時間(秒)を指定します。
parallel_queue_timeout_action

parallel_queue_timeoutによってパラレル・ステートメントがキューから削除されたときに実行するアクションを指定します。

次の値があります。

  • CANCEL: パラレル文は、エラーORA-7454により終了します
  • RUN: パラレル・サーバーが使用できない場合、SQL文がすぐに実行され、ダウングレードされる可能性があります。

使用上のノート

  • 共有を除くすべてのパラメータは、デフォルトでNULLに設定されます。

  • parallel_queue_timeout_actionが指定されていて、parallel_queue_timeoutが指定されていない場合は、エラーがスローされます。

VALIDATE_PENDING_AREAプロシージャ

このプロシージャは、リソース・マネージャに対する保留中の変更内容を検証します。

構文

CS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;