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_sql、kill_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)。 チューニング可能なPGAを割り当てるSQL操作(一時領域の使用を選択できる操作)は、この制限によって制御されません。 |
parallel_queue_timeout |
パラレル・ステートメントが、エラー(ORA-07454)によって削除および終了するまでに、コンシューマ・グループ・パラレル・ステートメント・キュー内に残しておく時間(秒)を指定します。 |
parallel_queue_timeout_action |
次の値があります。
|
使用上のノート
-
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 1LIST_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 300REVERT_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 |
元に戻すコンシューマ・グループを指定します。 有効な値は、 |
shares |
値が TRUEの場合、サービスの共有をデフォルト値に戻します。 |
concurrency_limit |
値がTRUEの場合は、サービスのconcurrency_limitをデフォルト値に戻します。concurrency_limitを元に戻すと、concurrency_limitとdegree_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 |
クライアント識別子。 |
使用上のノート
- このプロシージャには、疑似属性明示を引数として含めることが必要です。次に設定する必要があります:
- これは、明示的なコンシューマ・グループの切替えに最も高い優先度が指定されていることを示します。
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 |
更新するコンシューマ・グループを指定します。 有効な値は、 |
io_megabytes_limit |
SQL操作で発行できるI/Oの最大MBを指定します。 制限をクリアするには、 |
elapsed_time_limit |
SQL操作を実行できる最大時間(秒)を指定します。 制限をクリアするには、 |
shares |
シェアの値を指定します。他のコンシューマ・グループと比較してシェアの数が多いほど、コンシューマ・グループのCPUおよびI/O優先度が高くなります。 |
concurrency_limit |
実行可能な同時SQL文の最大数を指定します。 このパラメータは、 |
使用上のノート
-
指定されたサービス内の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_sql、kill_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)。 チューニング可能なPGAを割り当てるSQL操作(一時領域の使用を選択できる操作)は、この制限によって制御されません。 |
parallel_queue_timeout |
パラレル・ステートメントが、エラー(ORA-07454)によって削除および終了するまでに、コンシューマ・グループ・パラレル・ステートメント・キュー内に残しておく時間(秒)を指定します。 |
parallel_queue_timeout_action |
次の値があります。
|
使用上のノート
-
共有を除くすべてのパラメータは、デフォルトで
NULLに設定されます。 -
parallel_queue_timeout_actionが指定されていて、parallel_queue_timeoutが指定されていない場合は、エラーがスローされます。
VALIDATE_PENDING_AREAプロシージャ
このプロシージャは、リソース・マネージャに対する保留中の変更内容を検証します。
構文
CS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;