Skip to main content
Version: V1.0.0

THROTTLE

Description

This statement is used to throttle SQL requests based on specific features. It allows requests that meet the throttling criteria to fail early, preventing them from affecting normal requests.

Syntax

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}

Parameters

ParameterDescription
ENABLE SQLEnables throttling, followed by the throttling feature and its value.
FOR PRIORITYSpecifies the priority level affected by throttling, ensuring that throttling only affects certain sessions. You can set the priority for the current session using the session-level variable sql_throttle_priority, which defaults to -1. For example, if sessions a, b, and c have priorities 1, 2, and 3 respectively, setting ALTER SYSTEM ENABLE SQL THROTTLE FOR PRIORITY <= 2 USING QUEUE_TIME=0.1; means that sessions a and b are affected by throttling, while session c is not.
RTThrottles based on SQL response time (Response Time). Unit: seconds.
CPUThrottles based on CPU usage.
This parameter is not supported in the current version.
IOThrottles based on I/O operations.
This parameter is not supported in the current version.
NETWORKThrottles based on the amount of network traffic transmitted.
This parameter is not supported in the current version.
QUEUE_TIMEThrottles based on queue wait time. Unit: seconds.
LOGICAL_READSThrottles based on the number of logical reads.
This parameter is not supported in the current version.
DISABLE SQLDisables throttling.

Examples

Throttle requests with a queue wait time exceeding 0.1s for sessions with a priority less than or equal to 100.

ALTER SYSTEM ENABLE SQL THROTTLE FOR PRIORITY <= 100 USING QUEUE_TIME=0.1;