説明
この変数はV2.1バージョンから導入されました。
機能の概要
ob_sql_work_area_percentageは、SQLワークエリアメモリがテナント全体のメモリに占める割合を設定します。
権限要件
変数の確認
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_GLOBAL_VARIABLEビュー(Oracleモード)およびinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。変数の変更
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは、グローバルシステム変数の値を変更するには
SUPERまたはALTER SYSTEM権限が必要です。Oracleユーザーテナントは、グローバルシステム変数の値を変更するには
ALTER SYSTEM権限が必要です。
プロパティの説明
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | String |
| デフォルト値 | 5 |
| 値の範囲 | [0, 100] |
| 適用範囲 | Global |
| 変更は可能か | はい。SET ステートメントを使用して変更できます。 |
使用方法
ワークエリアメモリとは、SQLソートなどのブロッキング演算子が使用するメモリのことであり、テナントシステム変数ob_sql_work_area_percentageによって制御されます。デフォルト値は5%であり、つまりワークエリアメモリ = テナントメモリ × ob_sql_work_area_percentage(デフォルト5%)となります。
リクエストの同時実行数が多く、かつ各リクエストが大量のワークエリアメモリを消費する場合、ワークエリアメモリ不足のエラーが発生する可能性があります。よくあるシナリオとしてはunion、sort、group byなどが挙げられます。上記の問題が発生した場合、システム変数を適切に増やすことで回避できます。例えば:
obclient> SET GLOBAL ob_sql_work_area_percentage = 10;