CS_RESOURCE_MANAGERパッケージ

CS_RESOURCE_MANAGERパッケージには、コンシューマ・グループ・パラメータをリストおよび更新し、パラメータをデフォルト値に戻すためのインタフェースが用意されています。

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 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 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 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 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のコンシューマ・グループ・マッピング比較を実行するときに、指定したCLIENT_PROGRAM値との比較前に@記号とそれ以降の文字がV$SESSION.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)を超えたり、指定された量より多くのI/O(io_megabytes_limit)を実行した場合、その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 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;