説明
このステートメントは、OceanBaseデータベースV4.3.5 BP3バージョンから導入されました。
説明
このステートメントは、特定のSQLの同時実行数を制限するために、制限範囲を指定してレートリミットルールを作成します。
注意事項
OceanBaseデータベースのOracleモードでCREATE CONCURRENT_LIMITING_RULEステートメントを実行するには、専用権限create any concurrent_limiting_ruleが必要です。
構文
CREATE CONCURRENT_LIMITING_RULE ccl_rule_name
ON `database`.`table`
TO '<usename>'@'ip'
FOR { ALL | UPDATE | SELECT | INSERT | DELETE }
filter_options:
[ FILTER BY KEYWORD('KEYWORD1', 'KEYWORD2',…) ]
with_options:
WITH MAX_CONCURRENCY = value1 [per sql]
パラメータの説明
| パラメータ | 説明 |
|---|---|
ccl_rule_name |
必須。ルールの名前を表します。 |
database.table |
必須。データベースとテーブルの名前を表します。アスタリスク(*)を使用して任意のマッチングを示すことができます。
説明名前とSQLキーワードとの競合を避けるため、ルール名の前後にそれぞれバッククォート(`)を付けることを推奨します。 |
<usename>@<host> |
必須。アカウント名を表します。Host部分ではパーセント記号(%)を使用して任意のマッチングを示すことができます。 |
ALL|UPDATE \| SELECT \| INSERT\| DELETE |
必須。SQL文の種類を表します。現在はALL、UPDATE、SELECT、INSERT、DELETEの種類をサポートしています。
説明各ルールは、1種類のSQL文のみを指定できます。 |
[ filter_options ] |
オプション。制限キーワードを表します。
説明
|
with_options |
必須。制限の並列度を制御し、制限統計の粒度がルールレベルか、あるいはFormat SQLID文レベルかを指定します。現在はMAX_CONCURRENCYパラメータのみをサポートしており、この制限ルールに一致するSQL文の最大並列度を表します。 |
例
以下のコマンドを実行して、キーワードのレートリミットを設定します:
obclient> CREATE CONCURRENT_LIMITING_RULE sql1_keywords_ccl_rule
ON *.* TO '%'@'%' FOR SELECT
FILTER BY KEYWORD('table1', 'table2', 'c1') WITH MAX_CONCURRENCY 100;