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パラメータの値によって制限されます。乗算結果と総コストは、ともにサービス単位と呼ばれる単位で表されます。

CPU_PER_SESSION

このキーワードを使用すると、CPU_PER_SESSIONリソースに重みを適用できます。

CONNECT_TIME

このキーワードを使用すると、CONNECT_TIMEリソースに重みを適用できます。

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リソースの重みは指定しません。このリソースには重みを割り当てていないため、式に含まれていません。