説明
このステートメントは、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;