ALTER RESOURCE COST
目的
ALTER
RESOURCE
COST
文を使用すると、セッションで使用するリソース・コストの合計を算出するための式を指定または変更できます。
Oracle Databaseは、その他のリソースの使用も監視しますが、セッションに対するリソース・コストの合計は、この構文の4種類のリソースに基づいて算出されます。
この文を使用すると、4種類のリソースに重みを適用できます。Oracle Databaseは、プロファイルに指定されたこれらのリソースの値に重みを適用し、リソース・コストの合計を算出する計算式を設定します。CREATE
PROFILE
文のCOMPOSITE_LIMIT
パラメータを使用して、セッションに対するコストを制限できます。セッションのリソース・コストが制限を超えた場合、セッションは異常終了し、エラーが戻ります。各リソースに割り当てた重みを変更するためにALTER
RESOURCE
COST
文を使用した場合、現行のセッション以降のすべてのセッションで、その新しい重みを基にリソース・コストが計算されます。
関連項目:
すべてのリソースおよびリソース制限の設定については、「CREATE PROFILE」を参照してください。
前提条件
ALTER
RESOURCE
COST
システム権限が必要です。
構文
alter_resource_cost::=
セマンティクス
最初にセッションで使用された各リソースの量にそのリソースの重みを乗算し、次に、4種類のリソースの乗算結果を加算することによって、リソース・コストの合計が計算されます。どのセッションについても、このコストは、ユーザーのプロファイル内のCOMPOSITE_LIMIT
パラメータの値によって制限されます。乗算結果と総コストは、ともにサービス単位と呼ばれる単位で表されます。
LOGICAL_READS_PER_SESSION
この句を使用すると、LOGICAL_READS_PER_SESSION
リソースに重みを適用できます。論理読取りには、メモリーおよびディスクの両方から読み取られたブロックが含まれます。
PRIVATE_SGA
この句を使用すると、PRIVATE_SGA
リソースに重みを適用できます。共有サーバー・アーキテクチャを使用して、セッション用としてSGA内でプライベート領域を割り当てている場合のみ、この制限が適用されます。
integer
各リソースの重みを指定します。各リソースに割り当てる重みによって、各リソースがリソース・コストの合計に影響する程度が決定されます。リソースに重みを割り当てない場合は、デフォルト値の0(ゼロ)が適用され、コストへの影響はありません。重みを割り当てた場合は、データベースの次のセッション以降のすべてのセッションで、その重みが適用されます。
例
リソース・コストの変更: 例
次の文は、リソースCPU_PER_SESSION
およびCONNECT_TIME
に重みを割り当てます。
ALTER RESOURCE COST CPU_PER_SESSION 100 CONNECT_TIME 1;
この重みによって、セッションごとに次のコスト計算式が設定されます。
cost = (100 * CPU_PER_SESSION) + (1 * CONNECT_TIME)
この例では、CPU_PER_SESSION
およびCONNECT_TIME
の値は、DEFAULT
プロファイルまたはセッションのユーザーのプロファイルにある値のいずれかです。
ここでは、リソースLOGICAL_READS_PER_SESSION
およびPRIVATE_SGA
に重みを割り当てていないため、これらのリソースは式に含まれません。
プロファイルでCOMPOSITE_LIMIT
値として500を割り当てた場合、cost
が500を超えると、必ず、セッションはこの制限を超えます。たとえば、CPU時間0.04秒、経過時間101分を使用するセッションは、この制限を超えます。同様に、CPU時間が0.0301秒、経過時間が200分のセッションもこの制限を超えます。
一度割り当てた重みは、次のように、別のALTER
RESOURCE
文を発行することによって変更できます。
ALTER RESOURCE COST LOGICAL_READS_PER_SESSION 2 CONNECT_TIME 0;
新しく割り当てた重みによって、新しいコスト計算式が設定されます。
cost = (100 * CPU_PER_SESSION) + (2 * LOGICAL_READ_PER_SECOND)
CPU_PER_SESSION
およびLOGICAL_READS_PER_SECOND
の値は、DEFAULT
プロファイルまたはセッションのユーザーのプロファイルにある値のいずれかです。
このALTER
RESOURCE
COST
文によって、式は次のように変更されます。
-
CPU_PER_SESSION
リソースの重みは指定しません。このリソースにはすでに重みが割り当てられているため、式では先に指定した重みがそのまま使用されます。 -
LOGICAL_READS_PER_SESSION
リソースに重みを割り当てたため、このリソースが式で使用されます。 -
CONNECT_TIME
リソースに0(ゼロ)を割り当てたため、このリソースは式に含まれていません。 -
PRIVATE_SGA
リソースの重みは指定しません。このリソースには重みを割り当てていないため、式に含まれていません。