MEDIUMサービス同時実行制限の変更(ECPUコンピュート・モデル)

アプリケーションでカスタマイズされた同時実行性が必要な場合は、Autonomous Database MEDIUMサービスの同時実行性の制限を変更できます。

事前定義されたサービスのいずれかを選択すると、ほとんどのアプリケーションで適切に機能する同時実行性の値が提供されます。デフォルト・サービスのいずれかを選択してもアプリケーションのパフォーマンス・ニーズを満たさない場合は、MEDIUMサービスを使用して同時実行性制限を変更できます。たとえば、単一ユーザー・ベンチマークを実行する場合、最高レベルのパラレル化(DOP)を得るために、MEDIUMサービスの同時実行性制限を1に設定できます。

ノート

同時実行性制限の変更は、4つ以上のECPUを持つインスタンスに対してのみ許可されます。

たとえば、コンピュート自動スケーリングを無効にすると、インスタンスが400 ECPUで構成されている場合、デフォルトでは、Autonomous DatabaseはMEDIUMサービスに対して100の同時実行制限を提供します:

0.25125 x number of ECPUsセッション(最大100の同時問合せ)。10進数の結果は切り捨てられます。

この例では、MEDIUMサービスは、最大100の同時問合せとDOPが4のアプリケーションをサポートしています。同時問合せが50個のみ必要で、DOPを増やす場合は、同時実行制限を減らし、データベースによってDOPが増加します。そのためには、MEDIUMサービスの同時実行制限を50に設定します。同時実行制限を変更すると、選択した同時実行制限およびECPU数に基づいてDOPが計算および設定されます。この例では、同時実行制限が50に設定されており、新しいDOPは12です。

コンピュート自動スケーリングを有効にすると、DOPは3倍大きい値に設定されます。この例では、DOP値は36です。

データベース・アクションまたはPL/SQLパッケージCS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVEを使用して、MEDIUMサービスの同時実行制限を変更できます。

データベース・アクションのMEDIUMサービス同時実行制限を変更するには、次のステップに従います:

  1. ADMINユーザーとしてデータベース・アクションにアクセスします。
  2. データベース・アクション起動パッドの「管理」で、「Resource Managementルールの設定」をクリックします。
  3. 「Resource Management Rulesの設定」ページで、「同時実行性の制限」タブを選択します。
    adb_set_concurrency_limit_ecpu.pngの説明が続きます
  4. MEDIUMサービスの場合、値を入力するか、「減分」または「増分」アイコンをクリックして、値を必要な同時実行制限に変更します。

    指定した同時実行制限が有効でない場合は、ECPUの数に基づいて、次のようなメッセージが表示され、インスタンスの有効な値の範囲がリストされます:

    Enter a number between 1 and 12.
  5. 「変更の保存」をクリックします。
  6. 「OK」をクリックします。

MEDIUMサービスの同時実行制限をデフォルト値にリセットするには、「デフォルト値のロード」をクリックし、「変更の保存」をクリックします。

PL/SQLプロシージャUPDATE_PLAN_DIRECTIVEを使用したMEDIUMサービス同時実行制限の変更(ECPUコンピュート・モデル)

データベース・アクションで「Resource Managementルールの設定」カードを使用するかわりに、PL/SQLを使用してMEDIUMサービスの同時実行性制限を変更できます。

CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVEでMEDIUMサービスの同時実行制限を変更するには:

  1. PL/SQLプロシージャCS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVEをコールして、MEDIUMコンシューマ・グループの同時実行制限を更新します。

    たとえば、12 ECPUの場合、次のようにMEDIUMサービスの同時実行制限を2に変更します:

    BEGIN
        CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'MEDIUM', concurrency_limit => 2); 
    END;
    /
    

    指定したconcurrency_limitが有効でない場合は、ECPUの数に基づいて、インスタンスの有効な値範囲をリストするエラー・メッセージが表示されます。たとえば、12 ECPUの場合:

    ORA-20000: Invalid or missing value. Concurrency limit must be between 1 and 9 for the specified CPU count

    このエラー・メッセージの例は、12個のECPUを持つインスタンスからのものです。

  2. PL/SQLファンクションCS_RESOURCE_MANAGER.LIST_CURRENT_RULESを使用して、更新されたMEDIUMサービスの同時実行制限および並列度を確認します:
    SELECT * FROM CS_RESOURCE_MANAGER.LIST_CURRENT_RULES();

    このプロシージャは、すべてのコンシューマ・グループの値リストを返します。ステップ1で指定した同時実行制限を変更した後、MEDIUMサービスのCONCURRENCY_LIMITおよびDEGREE_OF_PARALLELISMの値をチェックして変更を確認します。

  3. MEDIUMサービスの同時実行制限を変更した後、MEDIUMサービスに接続してアプリケーションをテストし、カスタマイズした同時実行制限がパフォーマンス目標を満たしていることを確認します。

デフォルト値に戻す場合は、CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES PL/SQLプロシージャを使用して、MEDIUMサービスのデフォルト設定に戻します。

たとえば、次のとおりです。

BEGIN
    CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'MEDIUM', concurrency_limit => TRUE);
END;
/

詳細は、CS_RESOURCE_MANAGERパッケージを参照してください。

MEDIUMサービス同時実行制限の変更に関するノート(ECPUコンピュート・モデル)

  • 同時実行性の制限の変更は、MEDIUMサービスに対してのみ許可されます。

  • 並行性制限の変更は、ECPUの数が4以上である場合のみ許可されます。

  • また、同時実行性の制限を変更すると、並列度も変更されます(古い同時実行性の制限と設定した新しい値の差の大きさによっては、値が変更されない場合もあります)。

  • 設定する同時実行性の制限は、次の範囲内である必要があります。

    • コンピュート自動スケーリングが無効の場合: 1から.75 x the number of ECPUsの間
    • コンピュート自動スケーリングが有効な場合: 1から2.25 x the number of ECPUsの間
  • MEDIUMサービスでは、次の同時実行性の制限およびDOP値がデフォルトで設定されます:

    MEDIUMデータベース・サービス 自動スケーリングの計算が無効なデフォルト値 コンピュート自動スケーリングが有効なデフォルト値

    同通貨制限

    0.25125 × number of ECPUs: ECPUの数が8を超える場合

    10進数の結果は切り捨てられます

    ECPUの数が4 ≤ ECPUs < 8の範囲にある場合は2

    0.75375 × number of ECPUs: ECPUの数が8を超える場合

    10進数の結果は切り捨てられます

    ECPUの数が範囲内にある場合は6: 4 ≤ ECPUs < 8

    DOP

    4 ECPUの数が8以上の場合

    または

    TRUNC (ECPU/2) (ECPUの数が8未満の場合)

    4 ECPUの数が8以上の場合

    または

    TRUNC (ECPU/2) (ECPUの数が8未満の場合)

  • 同時実行性の制限の値を変更すると、MEDIUMサービスのDOPは、2から.75 * number of ECPUsまで(コンピュート自動スケーリングが無効の場合)、または2.25 x number of ECPUs (コンピュート自動スケーリングが有効な場合)になります。

    コンピュート自動スケールの詳細は、自動スケールの使用を参照してください。

  • いつでも、MEDIUMサービスの同時実行性の制限およびDOPのデフォルト値に戻すことができます。