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