説明
このステートメントは、SQL特徴によるレート制限を設定するために使用されます。レート制限の条件に合致するSQLリクエストを早期に失敗させ、通常のリクエストへの影響を避けます。
構文
alter_system_throttle_stmt:
ALTER SYSTEM throttle_action;
throttle_action:
ENABLE SQL THROTTLE [priority_option] [using_metric_option_list]
| DISABLE SQL
priority_option:
FOR PRIORITY <= INT_VALUE
using_metric_option_list:
USING metric_option_list
metric_option_list:
metric_option [metric_option ...]
metric_option:
RT = {INT_VALUE | DECIMAL_VALUE}
| CPU = {INT_VALUE | DECIMAL_VALUE}
| IO = INT_VALUE
| NETWORK = {INT_VALUE | DECIMAL_VALUE}
| QUEUE_TIME = {INT_VALUE | DECIMAL_VALUE}
| LOGICAL_READS = {INT_VALUE | DECIMAL_VALUE}
パラメータの説明
パラメータ |
説明 |
|---|---|
| ENABLE SQL | スロットリングを有効にします。後続にスロットリングの特性と特性値を指定します。 |
| FOR PRIORITY | スロットリングの影響を受ける優先順位を設定します。これにより、スロットリングの影響が一部のセッションにのみ適用されます。現在のセッションの優先順位は、セッションレベル変数 sql_throttle_priority で設定できます。デフォルトは -1 です。この変数の詳細については、「リファレンスガイド」の システム変数 セクションを参照してください。例えば、セッション a、b、c の優先順位がそれぞれ 1、2、3 の場合、ALTER SYSTEM ENABLE SQL THROTTLE FOR PRIORITY <= 2 USING QUEUE_TIME=0.1; を設定すると、セッション a と b がスロットリングの影響を受け、c は受けません。 |
| RT | SQL応答時間(Response Time)に基づいてスロットリングを行います。単位は秒です。 |
| CPU | CPU 使用率に基づいてスロットリングを行います。
説明現在のバージョンでは、このパラメータはサポートされていません。 |
| IO | I/O 回数に基づいてスロットリングを行います。
説明現在のバージョンでは、このパラメータはサポートされていません。 |
| NETWORK | 送信されるネットワークトラフィック量に基づいてスロットリングを行います。
説明現在のバージョンでは、このパラメータはサポートされていません。 |
| QUEUE_TIME | キュー待ち時間に基づいてスロットリングを行います。単位は秒です。 |
| LOGICAL_READS | ロジカルリード回数に基づいてスロットリングを行います。
説明現在のバージョンでは、このパラメータはサポートされていません。 |
| DISABLE SQL | スロットリングを無効にします。 |
例
PRIORITY が 100 以下でキュー待ち時間が 0.1s を超えるセッションからのリクエストを制限します。
obclient> ALTER SYSTEM ENABLE SQL THROTTLE FOR PRIORITY <= 100 USING QUEUE_TIME=0.1;