ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

85 DBMS_RESOURCE_MANAGER

DBMS_RESOURCE_MANAGERパッケージは、プラン、コンシューマ・グループおよびプラン・ディレクティブをメンテナンスします。また、プラン・スキーマへの変更内容をグループ化する方法も提供します。


関連項目:

データベース・リソース・マネージャの使用方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

この章では、次の項目について説明します。


DBMS_RESOURCE_MANAGERの使用方法


セキュリティ・モデル

実行者には、このプロシージャを実行するためのADMINISTER_RESOURCE_MANAGERシステム権限が必要です。この権限の付与および取消しを行うプロシージャは、DBMS_RESOURCE_MANAGER_PRIVSパッケージに含まれています(第86章「DBMS_RESOURCE_MANAGER_PRIVS」を参照)。


定数

表85-1 定数: 名前およびOracle Enterprise Managerでの略称

定数 定義

CLIENT_MACHINE

CONSTANT VARCHAR2(30) := 'CLIENT_MACHINE';

CLIENT_OS_USER

CONSTANT VARCHAR2(30) := 'CLIENT_OS_USER';

CLIENT_PROGRAM

CONSTANT VARCHAR2(30) := 'CLIENT_PROGRAM';

MODULE_NAME

CONSTANT VARCHAR2(30) := 'MODULE_NAME';

MODULE_NAME_ACTION

CONSTANT VARCHAR2(30) := 'MODULE_NAME_ACTION';

ORACLE_USER

CONSTANT VARCHAR2(30) := 'ORACLE_USER'

SERVICE_MODULE

CONSTANT VARCHAR2(30) := 'SERVICE_MODULE';

SERVICE_MODULE_ACTION

CONSTANT VARCHAR2(30) := 'SERVICE_MODULE_ACTION';

SERVICE_NAME

CONSTANT VARCHAR2(30) := 'SERVICE_NAME';



プランの利点の1つは、相互に参照できることです。プランのエントリは、コンシューマ・グループまたはサブプランのいずれかになります。次に、有効なCPUプラン・ディレクティブのセット例を示します。

表85-2 MYDB PLAN CPUプラン・ディレクティブ

サブプラン/グループ CPU_Level 1

MAILDBプラン

30%

BUGDBプラン

70%


これらのプラン・ディレクティブが有効で、すべてのコンシューマ・グループに実行可能なセッションが無限にある場合、MAILDBプランには使用可能なCPUリソースの30%が割り当てられ、一方、BUGDBプランにはその70%が割り当てられます。 これをさらに分割すると、POSTMANコンシューマ・グループにあるセッションは12%(30%の内の40%)の時間を実行し、ONLINEコンシューマ・グループにあるセッションは56%(70%の内の80%)の時間を実行します。表85-1に、この使用例を示します。

図85-1 リソース・マネージャの使用例

図85-1の説明が続きます。
図85-1「リソース・マネージャの使用例」の説明

概念的には、アクティブなセッションはコンシューマ・グループの下にあります。つまり、セッションはリソース・コンシューマ・グループに所属し、このコンシューマ・グループは、処理するリソースの割当てを決定するためにプランが使用します。

CPUプラン・ディレクティブのマルチプラン(1つ以上のサブプランを持つプラン)定義は、各プランがそれ自体をエンティティとして所有するため、1セットのプラン・ディレクティブを持つ単一プランに縮小できません。プランまたはサブプランに割り当てられたCPU量は、アクティブ・セッションを持つコンシューマ・グループがそのプランに含まれていないかぎり、そのプラン内でのみ使用されます。したがって、この例では、BUG MAINTグループがCPU量をまったく使用しなかった場合はそのプラン内でリサイクルされるので、BUGDBプラン内のレベル1に戻ります。前述の例で、マルチプラン定義が複数のコンシューマ・グループを持つ単一プランに縮小された場合は、BUG MAINTグループで使用されていないCPU量を明示的にリサイクルする方法はありません。CPU量はグローバルにリサイクルされるので、MAILセッションにもそれを使用する機会が与えられます。

データベースのリソースは、複数のアプリケーション間の高いレベルでパーティション化でき、アプリケーション内で再パーティション化できます。アプリケーション内の指定のグループで、割り当てられたすべてのリソースが必要ない場合、そのリソースは、同じアプリケーション内でのみ再パーティション化されます。

次の例では、デフォルトのプランとコンシューマ・グループの割当て方法が使用されます。

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.CREATE_PLAN(PLAN => 'bugdb_plan',
   COMMENT => 'Resource plan/method for bug users sessions');
DBMS_RESOURCE_MANAGER.CREATE_PLAN(PLAN => 'maildb_plan',
   COMMENT => 'Resource plan/method for mail users sessions');
DBMS_RESOURCE_MANAGER.CREATE_PLAN(PLAN => 'mydb_plan',
   COMMENT => 'Resource plan/method for bug and mail users sessions');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => 'Bug_Online_group',
   COMMENT => 'Resource consumer group/method for online bug users sessions');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => 'Bug_Batch_group',
COMMENT => 'Resource consumer group/method for bug users sessions who run batch jobs');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => 'Bug_Maintenance_group',
   COMMENT => 'Resource consumer group/method for users sessions who maintain
   the bug  db');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => 'Mail_users_group',
   COMMENT => 'Resource consumer group/method for mail users sessions');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => 'Mail_Postman_group',
   COMMENT => 'Resource consumer group/method for mail postman');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(CONSUMER_GROUP => 'Mail_Maintenance_group',
   COMMENT => 'Resource consumer group/method for users sessions who maintain the mail
   db');
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'Bug_Online_group',
   COMMENT => 'online bug users sessions at level 1', CPU_P1 => 80, CPU_P2=> 0,
   PARALLEL_DEGREE_LIMIT_P1 => 8);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'Bug_Batch_group',
   COMMENT => 'batch bug users sessions at level 1', CPU_P1 => 20, CPU_P2 => 0,
   PARALLEL_DEGREE_LIMIT_P1 => 2);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'Bug_Maintenance_group',
   COMMENT => 'bug maintenance users sessions at level 2', CPU_P1 => 0, CPU_P2 => 100, PARALLEL_DEGREE_LIMIT_P1 => 3);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'OTHER_GROUPS',
   COMMENT => 'all other users sessions at level 3', CPU_P1 => 0, CPU_P2 => 0, CPU_P3 => 100);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'Mail_Postman_group',
   COMMENT => 'mail postman at level 1', CPU_P1 => 40, CPU_P2 => 0,
   PARALLEL_DEGREE_LIMIT_P1 => 4);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'Mail_users_group',
   COMMENT => 'mail users sessions at level 2', CPU_P1 => 0, CPU_P2 => 80,
   PARALLEL_DEGREE_LIMIT_P1 => 4);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'Mail_Maintenance_group',
   COMMENT => 'mail maintenance users sessions at level 2', CPU_P1 => 0, CPU_P2 => 20,
   PARALLEL_DEGREE_LIMIT_P1 => 2);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'OTHER_GROUPS',
   COMMENT => 'all other users sessions at level 3', CPU_P1 => 0, CPU_P2 => 0, CPU_P3 => 100);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'mydb_plan', GROUP_OR_SUBPLAN => 'maildb_plan',
   COMMENT=> 'all mail users sessions at level 1', CPU_P1 => 30);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(PLAN => 'mydb_plan', GROUP_OR_SUBPLAN => 'bugdb_plan',
   COMMENT => 'all bug users sessions at level 1', CPU_P1 => 70);
DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;

-- The preceding call to VALIDATE_PENDING_AREA
-- is optional, because the validation is implicitly done in SUBMIT_PENDING_AREA.

BEGIN
DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA();

DBMS_RESOURCE_MANAGER.CREATE_PLAN(
 PLAN => 'bugdb_plan',
 COMMENT => 'Resource plan/method for bug users sessions');
DBMS_RESOURCE_MANAGER.CREATE_PLAN(
 PLAN => 'maildb_plan',
 COMMENT => 'Resource plan/method for mail users sessions');

DBMS_RESOURCE_MANAGER.CREATE_PLAN(
 PLAN => 'mydb_plan',
 COMMENT => 'Resource plan/method for bug and mail users sessions');

DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
 CONSUMER_GROUP => 'Bug_Online_group',
 COMMENT => 'Resource consumer group/method for online bug users sessions');

DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
 CONSUMER_GROUP => 'Bug_Batch_group',
 COMMENT => 'Resource consumer group/method for bug users sessions who run
batch jobs');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
 CONSUMER_GROUP => 'Bug_Maintenance_group',
 COMMENT => 'Resource consumer group/method for users sessions who maintain
the bug db');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
 CONSUMER_GROUP => 'Mail_users_group',
 COMMENT => 'Resource consumer group/method for mail users sessions');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
 CONSUMER_GROUP => 'Mail_Postman_group',
 COMMENT => 'Resource consumer group/method for mail postman');
DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP(
 CONSUMER_GROUP => 'Mail_Maintenance_group',
 COMMENT => 'Resource consumer group/method for users sessions who maintain
the mail
db');

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'Bug_Online_group',
 COMMENT => 'online bug users sessions at level 1',
 CPU_P1 => 80, CPU_P2=> 0,
 PARALLEL_DEGREE_LIMIT_P1 => 8);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'Bug_Batch_group',
 COMMENT => 'batch bug users sessions at level 1',
 CPU_P1 => 20, CPU_P2 => 0,
 PARALLEL_DEGREE_LIMIT_P1 => 2);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'Bug_Maintenance_group',
 COMMENT => 'bug maintenance users sessions at level 2',
 CPU_P1 => 0, CPU_P2 => 100,
 PARALLEL_DEGREE_LIMIT_P1 => 3);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'bugdb_plan', GROUP_OR_SUBPLAN => 'OTHER_GROUPS',
 COMMENT => 'all other users sessions at level 3',
 CPU_P1 => 0, CPU_P2 => 0, CPU_P3 => 100);

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'Mail_Postman_group',
 COMMENT => 'mail postman at level 1',
 CPU_P1 => 40, CPU_P2 => 0,
 PARALLEL_DEGREE_LIMIT_P1 => 4);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'Mail_users_group',
 COMMENT => 'mail users sessions at level 2',
 CPU_P1 => 0, CPU_P2 => 80,
 PARALLEL_DEGREE_LIMIT_P1 => 4);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'Mail_Maintenance_group',
 COMMENT => 'mail maintenance users sessions at level 2',
 CPU_P1 => 0, CPU_P2 => 20,
 PARALLEL_DEGREE_LIMIT_P1 => 2);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'maildb_plan', GROUP_OR_SUBPLAN => 'OTHER_GROUPS',
 COMMENT => 'all other users sessions at level 3',
 CPU_P1 => 0, CPU_P2 => 0, CPU_P3 => 100);

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'mydb_plan', GROUP_OR_SUBPLAN => 'maildb_plan',
 COMMENT=> 'all mail users sessions at level 1',
 CPU_P1 => 30);
DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
 PLAN => 'mydb_plan', GROUP_OR_SUBPLAN => 'bugdb_plan',
 COMMENT => 'all bug users sessions at level 1',
 CPU_P1 => 70);

DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA();
DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA();
END;
/

DBMS_RESOURCE_MANAGERサブプログラムの要約

表85-3 DBMS_RESOURCE_MANAGERパッケージのサブプログラム

サブプログラム 説明

CLEAR_PENDING_AREAプロシージャ


リソース・マネージャに対する作業領域を消去します。

CREATE_CONSUMER_GROUPプロシージャ


リソース・コンシューマ・グループを定義するエントリを作成します。

CREATE_PENDING_AREAプロシージャ


リソース・マネージャ・オブジェクトへの変更を行うための作業領域を作成します。

CREATE_PLANプロシージャ


リソース・プランを定義するエントリを作成します。

CREATE_PLAN_DIRECTIVEプロシージャ


リソース・プラン・ディレクティブを作成します。

CREATE_SIMPLE_PLANプロシージャ


最大8つのコンシューマ・グループが含まれた単一レベルのリソース・プランを1ステップで作成します。

DELETE_CONSUMER_GROUPプロシージャ


リソース・コンシューマ・グループを定義するエントリを削除します。

DELETE_PLANプロシージャ


指定のプランおよびそれが参照するすべてのプラン・ディレクティブを削除します。

DELETE_PLAN_CASCADEプロシージャ


指定のプランおよびそのすべての子(プラン・ディレクティブ、サブプラン、コンシューマ・グループ)を削除します。

DELETE_PLAN_DIRECTIVEプロシージャ


リソース・プラン・ディレクティブを削除します。

SET_CONSUMER_GROUP_MAPPINGプロシージャ


ログイン属性およびランタイム属性のマッピングに使用するエントリを追加、削除または変更します。

SET_CONSUMER_GROUP_MAPPING_PRIプロシージャ


セッション属性マッピングの優先順位リストを作成します。

SET_INITIAL_CONSUMER_GROUPプロシージャ


ユーザーに対して、初期リソース・コンシューマ・グループを割り当てます。

SUBMIT_PENDING_AREAプロシージャ


リソース・マネージャに対する保留中の変更を実行します。

SWITCH_CONSUMER_GROUP_FOR_SESSプロシージャ


指定のセッションのリソース・コンシューマ・グループを変更します。

SWITCH_CONSUMER_GROUP_FOR_USERプロシージャ


指定のユーザー名で、すべてのセッションのリソース・コンシューマ・グループを変更します。

SWITCH_PLANプロシージャ


現行のリソース・マネージャ・プランを設定します。

UPDATE_CONSUMER_GROUPプロシージャ


リソース・コンシューマ・グループを定義するエントリを更新します。

UPDATE_PLANプロシージャ


リソース・プランを定義するエントリを更新します。

UPDATE_PLAN_DIRECTIVEプロシージャ


リソース・プラン・ディレクティブを更新します。

VALIDATE_PENDING_AREAプロシージャ


リソース・マネージャに対する保留中の変更を検証します。



CLEAR_PENDING_AREAプロシージャ

このプロシージャによって、リソース・マネージャに対する保留中の変更内容を消去します。

構文

DBMS_RESOURCE_MANAGER.CLEAR_PENDING_AREA;

CREATE_CONSUMER_GROUPプロシージャ

このプロシージャによって、リソース・コンシューマ・グループを定義するエントリを作成します。

構文

DBMS_RESOURCE_MANAGER.CREATE_CONSUMER_GROUP (
   consumer_group  IN VARCHAR2,
   comment         IN VARCHAR2,
   cpu_mth         IN VARCHAR2 DEFAULT 'ROUND-ROBIN');

パラメータ

表85-4 CREATE_CONSUMER_GROUPプロシージャのパラメータ

パラメータ 説明

consumer_group

コンシューマ・グループの名前。

comment

ユーザーのコメント。

cpu_mth

コンシューマ・グループ内のセッション間でCPU負荷の分散を図るためのリソース割当て方法。デフォルトはROUND-ROBINで、その場合、セッションが正しく実行されたことをラウンドロビン・スケジューラを使用して確認します。RUN-TO-COMPLETIONの場合、アクティブな時間が最も長いセッションは、他のセッションよりも先にスケジュールされます。



CREATE_PENDING_AREAプロシージャ

このプロシージャによって、リソース・マネージャ・オブジェクトに変更を加えます。

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

構文

DBMS_RESOURCE_MANAGER.CREATE_PENDING_AREA;

使用上の注意

ペンディング・エリアがアクティブな間は、変更された現行のプラン・スキーマを適切なユーザー・ビューから選択して、いつでも表示できます。

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


注意:

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

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

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


CREATE_PLANプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.CREATE_PLAN (
   plan                       IN VARCHAR2,
   comment                    IN VARCHAR2,
   cpu_mth                    IN VARCHAR2 DEFAULT 'EMPHASIS',
   active_sess_pool_mth        IN VARCHAR2 DEFAULT 'ACTIVE_SESS_POOL_ABSOLUTE',
   parallel_degree_limit_mth  IN VARCHAR2 DEFAULT
                              'PARALLEL_DEGREE_LIMIT_ABSOLUTE',
   queueing_mth               IN VARCHAR2 DEFAULT 'FIFO_TIMEOUT',);

パラメータ

表85-5 CREATE_PLANプロシージャのパラメータ

パラメータ 説明

plan

リソース・プランの名前。

comment

ユーザーのコメント。

cpu_mth

コンシューマ・グループやサブ・プランがそれぞれ使用するCPU量を指定するためのリソース割当て方法。デフォルトの方法はEMPHASISで、これは、コンシューマ・グループ間でのCPU分散方法を指定する際にパーセントを使用する、マルチレベル・プランに向いています。RATIOは、CPU分散方法の指定に比率を使用する、単一レベルのプランに向いています。

active_sess_pool_mth

アクティブ・セッション・プールのリソース割当て方法。アクティブなセッションの数を制限します。他のセッションはすべて非アクティブになり、アクティブ化されるまでキューで待機します。デフォルトのACTIVE_SESS_POOL_ABSOLUTEは、選択できる唯一の方法です。

parallel_degree_limit_mth

任意の操作の並列度に制限を指定するためのリソース割当て方法。デフォルトのPARALLEL_DEGREE_LIMIT_ABSOLUTEは、選択できる唯一の方法です。

queueing_mth

キューイングのリソース割当て方法。キュー内で実行待ちになっている非アクティブなセッションを実行する順序を制御します。デフォルトのFIFO_TIMEOUTは、選択できる唯一の方法です。


使用上の注意

デフォルトのリソース割当て方法を使用する場合は、プランの作成または更新時に方法を指定する必要はありません。


CREATE_PLAN_DIRECTIVEプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE (
   plan                      IN VARCHAR2,
   group_or_subplan          IN VARCHAR2,
   comment                   IN VARCHAR2,
   cpu_p1                    IN NUMBER   DEFAULT NULL,
   cpu_p2                    IN NUMBER   DEFAULT NULL,
   cpu_p3                    IN NUMBER   DEFAULT NULL,
   cpu_p4                    IN NUMBER   DEFAULT NULL,
   cpu_p5                    IN NUMBER   DEFAULT NULL,
   cpu_p6                    IN NUMBER   DEFAULT NULL,
   cpu_p7                    IN NUMBER   DEFAULT NULL,
   cpu_p8                    IN NUMBER   DEFAULT NULL,
   active_sess_pool_p1       IN NUMBER   DEFAULT NULL,
   queueing_p1               IN NUMBER   DEFAULT NULL,
   parallel_degree_limit_p1  IN NUMBER   DEFAULT NULL,
   switch_group              IN VARCHAR2 DEFAULT NULL,
   switch_time               IN NUMBER   DEFAULT NULL,
   switch_estimate           IN BOOLEAN  DEFAULT FALSE,
   max_est_exec_time         IN NUMBER   DEFAULT NULL,
   undo_pool                 IN NUMBER   DEFAULT NULL,
   max_idle_time             IN NUMBER   DEFAULT NULL,
               max_idle_blocker_time     IN NUMBER   DEFAULT NULL,
               switch_time_in_call       IN NUMBER   DEFAULT NULL);

パラメータ

表85-6 CREATE_PLAN_DIRECTIVEプロシージャのパラメータ

パラメータ 説明

plan

リソース・プランの名前。

group_or_subplan

コンシューマ・グループの名前またはサブプランの名前。

comment

プラン・ディレクティブについてのコメント。

cpu_p1

CPUリソース割当て方法がEMPHASISの場合、CPUのパーセントを第1レベルに指定します。RATIOの場合、CPU使用率の重みを指定します。デフォルトは、すべてのCPUパラメータについてNULLです。

cpu_p2

EMPHASISの場合、CPUのパーセントを第2レベルに指定します。RATIOの場合は適用できません。

cpu_p3

EMPHASISの場合、CPUのパーセントを第3レベルに指定します。RATIOの場合は適用できません。

cpu_p4

EMPHASISの場合、CPUのパーセントを第4レベルに指定します。RATIOの場合は適用できません。

cpu_p5

EMPHASISの場合、CPUのパーセントを第5レベルに指定します。RATIOの場合は適用できません。

cpu_p6

EMPHASISの場合、CPUのパーセントを第6レベルに指定します。RATIOの場合は適用できません。

cpu_p7

EMPHASISの場合、CPUのパーセントを第7レベルに指定します。RATIOの場合は適用できません。

cpu_p8

EMPHASISの場合、CPUのパーセントを第8レベルに指定します。RATIOの場合は適用できません。

active_sess_pool_p1

コンシューマ・グループに対するアクティブな同時セッションの最大数を指定します。デフォルトのNULLは、無制限を意味します。

queueing_p1

非アクティブ・セッション・キューにあるジョブ(実行待ち状態のジョブ)がタイムアウトする時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。

parallel_degree_limit_p1

任意の操作の並列度を制限します。デフォルトのNULLは、無制限を意味します。

switch_group

他の切替え基準に達した場合に、現行セッションの切替え先となるコンシューマ・グループを指定します。デフォルトはNULLです。グループ名が'CANCEL_SQL'の場合は、他の切替え基準に達したときに現行のコールが取り消されます。グループ名が'KILL_SESSION'の場合は、他の切替え基準に達したときにセッションが終了します。

switch_time

アクションの実行前にセッションを実行できる時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。

switch_estimate

TRUEの場合は、実行前に、見積り実行時間が操作のコンシューマ・グループに自動的に切り替えられるようにOracleに指示します。デフォルトはFALSEです。

max_est_exec_time

セッションに許可する実行時間(秒)の最大値を指定します。操作時間がMAX_EST_EXEC_TIMEより長いとオプティマイザが判断した場合、その操作は開始されず、ORA-07455が発行されます。オプティマイザが判断しない場合は、このディレクティブの効果はありません。デフォルトのNULLは、無制限を意味します。

undo_pool

コンシューマ・グループによって生成される取消しの合計量の最大値を、キロバイト(K)単位で設定します。デフォルトのNULLは、無制限を意味します。

max_idle_time

セッションのアイドル時間の最大値を示します。デフォルトのNULLは、無制限を意味します。

max_idle_blocker_time

別のセッションのリソース取得をブロックしながら、セッションのアイドル状態を維持できる時間(秒)の最大値。

switch_time_in_call

アクションの実行前にセッションを実行できる時間(秒)を指定します。最初のコールの終了時に、セッションのコンシューマ・グループは元のコンシューマ・グループにリストアされます。デフォルトのNULLは、無制限を意味します。SWITCH_TIME_IN_CALLSWITCH_TIMEについては、どちらか一方のみを指定してください。


使用上の注意


CREATE_SIMPLE_PLANプロシージャ

このプロシージャでは、最大8つのコンシューマ・グループが含まれた単一レベルのリソース・プランを1ステップで作成します。リソース・プランの作成前にペンディング・エリアを手動で作成したり、CREATE_CONSUMER_GROUPプロシージャおよびCREATE_RESOURCE_PLAN_DIRECTIVESプロシージャを個別に使用する必要がありません。

構文

DBMS_RESOURCE_MANAGER.CREATE_SIMPLE_PLAN (
   SIMPLE_PLAN      IN  VARCHAR2  DEFAULT,
   CONSUMER_GROUP1  IN  VARCHAR2  DEFAULT,
   GROUP1_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP2  IN  VARCHAR2  DEFAULT,
   GROUP2_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP3  IN  VARCHAR2  DEFAULT,
   GROUP3_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP4  IN  VARCHAR2  DEFAULT,
   GROUP4_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP5  IN  VARCHAR2  DEFAULT,
   GROUP5_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP6  IN  VARCHAR2  DEFAULT,
   GROUP6_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP7  IN  VARCHAR2  DEFAULT,
   GROUP7_CPU       IN  NUMBER    DEFAULT,
   CONSUMER_GROUP8  IN  VARCHAR2  DEFAULT,
   GROUP8_CPU       IN  NUMBER    DEFAULT);

DELETE_CONSUMER_GROUPプロシージャ

このプロシージャによって、リソース・コンシューマ・グループを定義するエントリを削除します。

構文

DBMS_RESOURCE_MANAGER.DELETE_CONSUMER_GROUP (
   consumer_group IN VARCHAR2);

パラメータ

表85-7 DELETE_CONSUMER_GROUPプロシージャのパラメータ

パラメータ 説明

consumer_group

削除されるコンシューマ・グループの名前。



DELETE_PLANプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.DELETE_PLAN (
   plan IN VARCHAR2);

パラメータ

表85-8 DELETE_PLANプロシージャのパラメータ

パラメータ 説明

plan

削除するリソース・プランの名前。



DELETE_PLAN_CASCADEプロシージャ

このプロシージャは、指定のプランおよびそのすべての子(プラン・ディレクティブ、サブプラン、コンシューマ・グループ)を削除します。必須オブジェクトおよび必須ディレクティブは削除されません。

構文

DBMS_RESOURCE_MANAGER.DELETE_PLAN_CASCADE (
   plan IN VARCHAR2);

パラメータ

表85-9 DELETE_PLAN_CASCADEプロシージャのパラメータ

パラメータ 説明

plan

プランの名前。


使用上の注意

DELETE_PLAN_CASCADEプロシージャでエラーが発生した場合は、ロールバックされるため、何も削除されません。


DELETE_PLAN_DIRECTIVEプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.DELETE_PLAN_DIRECTIVE (
   plan              IN VARCHAR2,
   group_or_subplan  IN VARCHAR2);

パラメータ

表85-10 DELETE_PLAN_DIRECTIVEプロシージャのパラメータ

パラメータ 説明

plan

リソース・プランの名前。

group_or_subplan

グループの名前またはサブプランの名前。



SET_CONSUMER_GROUP_MAPPINGプロシージャ

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

構文

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

パラメータ

表85-11 SET_CONSUMER_GROUP_MAPPINGプロシージャのパラメータ

パラメータ 説明

attribute

追加または変更するマッピング属性。リストされている定数のいずれかを指定します。

value

一致させる属性値。

consumer_group

マップされたコンシューマ・グループの名前。マッピングを削除する場合はNULLを指定します。


使用上の注意

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


SET_CONSUMER_GROUP_MAPPING_PRIプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING_PRI(
   explicit               IN NUMBER,
   oracle_user            IN NUMBER,
   service_name           IN NUMBER,
   client_os_user         IN NUMBER,
   client_program         IN NUMBER,
   client_machine         IN NUMBER,
   module_name            IN NUMBER,
   module_name_action     IN NUMBER,
   service_module         IN NUMBER,
   service_module_action  IN NUMBER);

パラメータ

表85-12 SET_CONSUMER_GROUP_MAPPING_PRIプロシージャのパラメータ

パラメータ 説明

explicit

明示的マッピングの優先順位。

oracle_user

Oracleユーザー名のマッピングの優先順位。

service_name

クライアント・サービス名のマッピングの優先順位。

client_os_user

クライアント・オペレーティング・システムのユーザー名のマッピングの優先順位。

client_program

クライアント・プログラムのマッピングの優先順位。

client_machine

クライアント・マシンのマッピングの優先順位。

module_name

アプリケーション・モジュール名のマッピングの優先順位。

module_name_action

アプリケーション・モジュール名およびアプリケーション・アクションのマッピングの優先順位。

service_module

サービス名およびアプリケーション・モジュール名のマッピングの優先順位。

module_name_action

サービス名、アプリケーション・モジュール名およびアプリケーション・アクションのマッピングの優先順位。


使用上の注意


SET_INITIAL_CONSUMER_GROUPプロシージャ

ユーザーの初期コンシューマ・グループは、そのユーザーが作成したセッションが最初に所属しているコンシューマ・グループです。このプロシージャは、ユーザーに対して、初期のリソース・コンシューマ・グループを設定します。

構文

DBMS_RESOURCE_MANAGER.SET_INITIAL_CONSUMER_GROUP (
   user           IN VARCHAR2,
   consumer_group IN VARCHAR2);

パラメータ

表85-13 SET_INITIAL_CONSUMER_GROUPプロシージャのパラメータ

パラメータ 説明

user

ユーザーの名前。

consumer_group

ユーザーの初期コンシューマ・グループ。


使用上の注意

このプロシージャを実行するためには、ADMINISTER_RESOURCE_MANAGERまたはALTER USERシステム権限が必要です。ユーザーの初期コンシューマ・グループが設定される前に、ユーザーまたはPUBLICに対して、コンシューマ・グループへの切替え権限が直接付与されている必要があります。初期コンシューマ・グループに対する切替え権限は、そのユーザーに付与されているロールから与えることはできません。


注意:

この方法は、ALTER USER DEFAULT ROLEに対する方法に類似しています。

ユーザーの初期コンシューマ・グループが設定されていない場合は、自動的にDEFAULT_CONSUMER_GROUPがコンシューマ・グループになります。

DEFAULT_CONSUMER_GROUPPUBLICに付与された切替え権限を持つため、すべてのユーザーはこのコンシューマ・グループに対する切替え権限を自動的に付与されます。コンシューマ・グループを削除するとき、削除するグループを初期コンシューマ・グループとしていたすべてのユーザーは、DEFAULT_CONSUMER_GROUPを初期コンシューマ・グループとします。削除するコンシューマ・グループに所属している現行のアクティブなセッションは、すべてDEFAULT_CONSUMER_GROUPに切り替えられます。


SUBMIT_PENDING_AREAプロシージャ

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


注意:

SUBMIT_PENDING_AREAへのコールは、VALIDATE_PENDING_AREAが成功していても失敗する場合があります。これは、VALIDATE_PENDING_AREAをコールした後に、削除中のプランがインスタンスによってSUBMIT_PENDING_AREAをコールするまでにロードされてしまうことが原因です。

構文

DBMS_RESOURCE_MANAGER.SUBMIT_PENDING_AREA;

SWITCH_CONSUMER_GROUP_FOR_SESSプロシージャ

このプロシージャによって、指定のセッションのリソース・コンシューマ・グループを変更します。また、トップレベルのユーザー・セッションに関連する(PQ)スレーブ・セッションのコンシューマ・グループも変更します。

構文

DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_SESS (
   session_id      IN NUMBER,
   session_serial  IN NUMBER,
   consumer_group  IN VARCHAR2);

パラメータ

表85-14 SWITCH_CONSUMER_GROUP_FOR_SESSプロシージャのパラメータ

パラメータ 説明

session_id

ビューV$SESSIONでのSID列。

session_serial

ビューV$SESSIONでのSERIAL#列。

consumer_group

切り替えるコンシューマ・グループの名前。



SWITCH_CONSUMER_GROUP_FOR_USERプロシージャ

このプロシージャによって、指定のユーザーIDを持つすべてのセッションに対するリソース・コンシューマ・グループを変更します。また、トップレベルのユーザー・セッションに関連する(PQ)スレーブ・セッションのコンシューマ・グループも変更します。

構文

DBMS_RESOURCE_MANAGER.SWITCH_CONSUMER_GROUP_FOR_USER (
   user            IN VARCHAR2,
   consumer_group  IN VARCHAR2);

パラメータ

表85-15 SWITCH_CONSUMER_GROUP_FOR_USERプロシージャのパラメータ

パラメータ 説明

user

ユーザーの名前。

consumer_group

切り替えるコンシューマ・グループの名前。


使用上の注意

SWITCH_CONSUMER_GROUP_FOR_SESSプロシージャおよびSWITCH_CONSUMER_GROUP_FOR_USERプロシージャによって、特定のセッションまたはユーザーのCPUリソース割当てを増減できます。これにより、UNIXのniceコマンドと類似した機能性が提供されます。

これらのプロシージャは、新規に指定されたコンシューマ・グループにセッションを即時に移動します。


SWITCH_PLANプロシージャ

このプロシージャは、現行のリソース・マネージャ・プランを設定します。

構文

DBMS_RESOURCE_MANAGER.SWITCH_PLAN(
   plan_name                     IN   VARCHAR2,
   sid                           IN   VARCHAR2 DEFAULT '*',
   allow_scheduler_plan_switches IN   BOOLEAN DEFAULT TRUE);

パラメータ

表85-16 SWITCH_PLANプロシージャのパラメータ

パラメータ 説明

plan_name

切替え先となるプランの名前。plan_nameに空の文字列('')を渡すと、リソース・マネージャは無効になります。

sid

sidパラメータを使用できるのは、Real Application Clusters環境のみです。このパラメータにより、プランを特定のインスタンスに対して変更できます。プランを変更するインスタンスのsidを指定します。また、すべてのインスタンスに対してプランを変更する場合は、'*'を指定してください。

allow_scheduler_plan_switches

FALSEに設定すると、ウィンドウ境界でのジョブ・スケジューラによるプランの自動切替えが無効になります。プランの自動切替えを再度有効にするには、管理者がallow_scheduler_plan_switchesTRUEに設定して、switch_planを再度コールする必要があります。デフォルトでは、ジョブ・スケジューラによるプランの自動切替えは有効になっています。



UPDATE_CONSUMER_GROUPプロシージャ

このプロシージャによって、リソース・コンシューマ・グループを定義するエントリを更新します。

構文

DBMS_RESOURCE_MANAGER.UPDATE_CONSUMER_GROUP (
   consumer_group  IN VARCHAR2,
   new_comment     IN VARCHAR2 DEFAULT NULL,
   new_cpu_mth     IN VARCHAR2 DEFAULT NULL);

パラメータ

表85-17 UPDATE_CONSUMER_GROUPプロシージャのパラメータ

パラメータ 説明

consumer_group

コンシューマ・グループの名前。

new_comment

新しいユーザーのコメント。

new_cpu_mth

CPUリソース割当てに対する新規の方法名。


使用上の注意

UPDATE_CONSUMER_GROUPに対するパラメータを指定しない場合、これらのパラメータは、データ・ディクショナリ内で変更されないまま残ります。


UPDATE_PLANプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.UPDATE_PLAN (
   plan                               IN VARCHAR2,
   new_comment                        IN VARCHAR2 DEFAULT NULL,
   new_cpu_mth                        IN VARCHAR2 DEFAULT NULL,
   new_active_sess_pool_mth           IN VARCHAR2 DEFAULT NULL,
   new_parallel_degree_limit_mth      IN VARCHAR2 DEFAULT NULL,
   new_queueing_mth                   IN VARCHAR2 DEFAULT NULL);

パラメータ

表85-18 UPDATE_PLANプロシージャのパラメータ

パラメータ 説明

plan

リソース・プランの名前。

new_comment

新しいユーザーのコメント。

new_cpu_mth

CPUリソースに対する新規の割当て方法の名前。

new_active_sess_pool_mth

アクティブな最大セッションに対する新規の方法名。

new_parallel_degree_limit_mth

並列度に対する新規の方法名。

new_queueing_mth

アクティブなセッションのプール機能で使用するキューイング・ポリシーのタイプを指定します。


使用上の注意


UPDATE_PLAN_DIRECTIVEプロシージャ

このプロシージャによって、リソース・プラン・ディレクティブを更新します。

構文

DBMS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE (
   plan                          IN VARCHAR2,
   group_or_subplan              IN VARCHAR2,
   new_comment                   IN VARCHAR2 DEFAULT NULL,
   new_cpu_p1                    IN NUMBER   DEFAULT NULL,
   new_cpu_p2                    IN NUMBER   DEFAULT NULL,
   new_cpu_p3                    IN NUMBER   DEFAULT NULL,
   new_cpu_p4                    IN NUMBER   DEFAULT NULL,
   new_cpu_p5                    IN NUMBER   DEFAULT NULL,
   new_cpu_p6                    IN NUMBER   DEFAULT NULL,
   new_cpu_p7                    IN NUMBER   DEFAULT NULL,
   new_cpu_p8                    IN NUMBER   DEFAULT NULL,
   new_active_sess_pool_p1       IN NUMBER   DEFAULT NULL,
   new_queueing_p1               IN NUMBER   DEFAULT NULL,
   new_parallel_degree_limit_p1  IN NUMBER   DEFAULT NULL,
   new_switch_group              IN VARCHAR2 DEFAULT NULL,
   new_switch_time               IN NUMBER   DEFAULT NULL,
   new_switch_estimate           IN BOOLEAN  DEFAULT FALSE,
   new_max_est_exec_time         IN NUMBER   DEFAULT NULL,
   new_undo_pool                 IN NUMBER   DEFAULT NULL,
   new_max_idle_time             IN NUMBER   DEFAULT NULL,
   new_max_idle_blocker_time     IN NUMBER   DEFAULT NULL,
   new_switch_time_in_call       IN NUMBER   DEFAULT NULL);

パラメータ

表85-19 UPDATE_PLAN_DIRECTIVEプロシージャのパラメータ

パラメータ 説明

plan

リソース・プランの名前。

group_or_subplan

コンシューマ・グループの名前またはサブプランの名前。

new_comment

プラン・ディレクティブについてのコメント。

new_cpu_p1

CPUリソース割当て方法がEMPHASISの場合、CPUのパーセントを第1レベルに指定します。RATIOの場合、CPU使用率の重みを指定します。デフォルトは、すべてのCPUパラメータについてNULLです。

new_cpu_p2

EMPHASISの場合、CPUのパーセントを第2レベルに指定します。RATIOの場合は適用できません。

new_cpu_p3

EMPHASISの場合、CPUのパーセントを第3レベルに指定します。RATIOの場合は適用できません。

new_cpu_p4

EMPHASISの場合、CPUのパーセントを第4レベルに指定します。RATIOの場合は適用できません。

new_cpu_p5

EMPHASISの場合、CPUのパーセントを第5レベルに指定します。RATIOの場合は適用できません。

new_cpu_p6

EMPHASISの場合、CPUのパーセントを第6レベルに指定します。RATIOの場合は適用できません。

new_cpu_p7

EMPHASISの場合、CPUのパーセントを第7レベルに指定します。RATIOの場合は適用できません。

new_cpu_p8

EMPHASISの場合、CPUのパーセントを第8レベルに指定します。RATIOの場合は適用できません。

new_active_sess_pool_p1

コンシューマ・グループに対するアクティブな同時セッションの最大数を指定します。デフォルトのNULLは、無制限を意味します。

new_queueing_p1

非アクティブ・セッション・キューにあるジョブ(実行待ち状態のジョブ)がタイムアウトする時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。

new_switch_group

任意の操作の並列度を制限します。デフォルトのNULLは、無制限を意味します。

new_switch_time

他の切替え基準に達した場合に、現行セッションの切替え先となるコンシューマ・グループを指定します。デフォルトはNULLです。グループ名が'CANCEL_SQL'の場合は、他の切替え基準に達したときに現行のコールが取り消されます。グループ名が'KILL_SESSION'の場合は、他の切替え基準に達したときにセッションが終了します。

new_switch_estimate

アクションの実行前にセッションを実行できる時間(秒)を指定します。デフォルトのNULLは、無制限を意味します。

new_max_est_exec_time

TRUEの場合は、実行前に、見積り実行時間が操作のコンシューマ・グループに自動的に切り替えられるようにOracleに指示します。デフォルトはFALSEです。

new_undo_pool

セッションに許可する実行時間(秒)の最大値を指定します。操作時間がMAX_EST_EXEC_TIMEより長いとオプティマイザが判断した場合、その操作は開始されず、ORA-07455が発行されます。オプティマイザが判断しない場合は、このディレクティブの効果はありません。デフォルトのNULLは、無制限を意味します。

new_parallel_degree_limit_p1

コンシューマ・グループによって生成される取消しの合計量の最大値を、キロバイト(K)単位で設定します。デフォルトのNULLは、無制限を意味します。

new_max_idle_time

セッションのアイドル時間の最大値を示します。デフォルトのNULLは、無制限を意味します。

new_max_idle_blocker_time

別のセッションのリソース取得をブロックしながら、セッションのアイドル状態を維持できる時間(秒)の最大値。

new_switch_time_in_call

アクションの実行前にセッションを実行できる時間(秒)を指定します。最初のコールの終了時に、セッションのコンシューマ・グループは元のコンシューマ・グループにリストアされます。デフォルトのNULLは、無制限を意味します。SWITCH_TIME_IN_CALLSWITCH_TIMEについては、どちらか一方のみを指定してください。


使用上の注意


VALIDATE_PENDING_AREAプロシージャ

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

構文

DBMS_RESOURCE_MANAGER.VALIDATE_PENDING_AREA;