説明
この変数はV4.4.2 BP1バージョンから有効になります。
機能の概要
max_execution_timeは、読み取り専用のSELECTステートメントの実行タイムアウト時間(単位:ミリ秒)を設定する場合にのみ適用されます。
注意点
max_execution_time変数が有効になるのは、以下のシナリオのみです:
- クラスタバージョンが要件を満たしていること:クラスタの最小バージョンはV4.4.2 BP1以上であること。
MAX_EXECUTION_TIME構成パラメータの値が0より大きいこと(つまり、この機能が有効であること)。- 現在実行中のSQLが単一の読み取り専用
SELECTステートメントであること。
max_execution_time変数が無効であり、ob_query_timeout変数によって制御されるシナリオ:
- クラスタの最小バージョンがV4.4.2 BP1未満であること。
MAX_EXECUTION_TIME構成パラメータが0に等しいこと。selectステートメントではないこと。- multi-stmtであり、かつ
ob_query_timeoutのタイムスタンプがmax_execution_timeのタイムスタンプより小さいこと。 selectステートメントであるが、読み取り専用のselectステートメントではないこと。例えば、selectステートメントにUDFが含まれており、UDF内でDMLが定義されている場合、そのselectステートメントのタイムアウト時間はob_query_timeoutによって制御されます。
権限要件
変数の確認
グローバルレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはビューSYS.TENANT_VIRTUAL_GLOBAL_VARIABLE(Oracleモード)およびビューinformation_schema.GLOBAL_VARIABLES(MySQLモード)を使用してグローバルシステム変数の値を確認できます。セッションレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはビューSYS.TENANT_VIRTUAL_SESSION_VARIABLE(Oracleモード)およびビューinformation_schema.SESSION_VARIABLES(MySQLモード)を使用してセッションシステム変数の値を確認できます。
変数の変更
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは、
SUPERまたはALTER SYSTEM権限を持っている必要があります。Oracleユーザーテナントは、
ALTER SYSTEM権限を持っている必要があります。
プロパティの説明
プロパティ |
説明 |
|---|---|
| パラメータタイプ | Integer |
| デフォルト値 | 0、max_execution_timeシステム変数が無効であり、ob_query_timeoutなど他のタイムアウト制御方式が使用されることを示します。 |
| 値の範囲 | [0, 4294967295] |
| 適用範囲 |
|
| 変更は可能か | この変数はSET GLOBALステートメントを使用してグローバル有効方式での値を変更でき、SETステートメントを使用してセッション有効方式での値を変更できます。 |
設定例
SELECTステートメントの実行タイムアウト時間を2ミリ秒に設定します。
obclient> SET GLOBAL max_execution_time=2;