OceanBaseデータベースは、DDL操作の実行効率を向上させるために、パラレルDDL操作をサポートしています。
パラレルDDLを設定する
OceanBaseデータベースでは、構成パラメータを調整することで、パラレルDDL機能を柔軟に制御できます。
_enable_parallel_table_creation:パラレルCREATE TABLE操作を制御します。_parallel_ddl_control:以下のパラレル操作を制御します。TRUNCATE TABLEDROP TABLECREATE INDEXCREATE VIEWCOMMENT
_enable_parallel_table_creation
_enable_parallel_table_creationは、テナントレベルでテーブルの並行作成機能(CREATE TABLE)を有効にするかどうかを制御します。
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | ブール型 |
| デフォルト値 | True、テーブルの並行作成機能を有効にする。 |
| 値の範囲 |
|
| 有効化モード | 即時に有効になります |
例
sysテナントで以下のステートメントを実行して、ユーザー テナントmysql001のテーブルの並行作成機能を無効にします。ALTER SYSTEM SET _enable_parallel_table_creation = false tenant=mysql001;ユーザーテナントで以下のステートメントを実行して、テーブルの並行作成機能を無効にします。
MySQLモード:
ALTER SYSTEM SET _enable_parallel_table_creation = false;Oracleモード:
説明
Oracleモードでは、構成パラメータにダブルクォーテーションマークを付ける必要があります。
ALTER SYSTEM SET "_enable_parallel_table_creation" = false;
_parallel_ddl_control
_parallel_ddl_controlは、テナントレベルでさまざまなパラレルDDL機能を有効にするかどうかを制御します。OceanBaseデータベースの現在のバージョンでは、_parallel_ddl_controlはTRUNCATE TABLE、CREATE INDEX、CREATE VIEW、DROP TABLE、およびCOMMENTのパラレル機能を有効にするかどうかを制御します。
| プロパティ | 説明 |
|---|---|
| パラメータタイプ | STRING |
| デフォルト値 | 空文字列で、以下の意味があります:
説明個々のパラレルDDLに対して操作を行う場合、対象外のDDLタイプは |
| 値の範囲 | 空文字列、またはDDL:{ON | OFF} [, DDL:{ON | OFF}] [, ...]。 DDLタイプの詳細については、以下の表を参照してください。 |
| 有効化モード | 即時に有効になります |
DDLタイプの詳細:
| DDLタイプ | 値 |
|---|---|
| TRUNCATE_TABLE | TRUNCATE_TABLE:{ON | OFF} |
| SET_COMMENT | SET_COMMENT:{ON | OFF} |
| CREATE_INDEX | CREATE_INDEX:{ON | OFF} |
| CREATE_VIEW | CREATE_VIEW:{ON | OFF} |
| DROP_TABLE | DROP_TABLE:{ON | OFF} |
例
sysテナントで以下のステートメントを実行して、ユーザー テナントmysql001の並列TRUNCATE TABLEを無効にし、並列CREATE INDEXを有効にします。ALTER SYSTEM SET _parallel_ddl_control = 'CREATE_INDEX:ON, TRUNCATE_TABLE:OFF' tenant = 'mysql001';ユーザーテナントで以下のステートメントを実行して、並列
TRUNCATE TABLEを無効にし、並列CREATE INDEXを有効にします。MySQLモード:
ALTER SYSTEM SET _parallel_ddl_control = 'CREATE_INDEX:ON, TRUNCATE_TABLE:OFF';Oracleモード:
説明
Oracleモードでは、構文上、構成パラメータにダブルクォーテーションマークを付ける必要があります。
ALTER SYSTEM SET "_parallel_ddl_control" = 'CREATE_INDEX:ON, TRUNCATE_TABLE:OFF';
DDLデフォルト並列度
OceanBaseデータベースでは、セッション(Session)レベルのパラメータ_force_parallel_ddl_dopを使用して、DDL操作のデフォルト並列度を指定できます。
説明
PARALLELヒントを使用して並列度を明示的に指定しない場合、DDLは_force_parallel_ddl_dopで設定された値を並列度として使用します。
パラレルDDL機能を使用する際には、事前に_force_parallel_ddl_dopを使用してDDLパラレル実行の並列度を設定できます。
例
ユーザー・テナントで以下のステートメントを実行して、セッションレベルのDDL操作のデフォルト並列度を16に設定します。
MySQLモード:
SET _FORCE_PARALLEL_DDL_DOP = 16;
Oracleモード:
SET "_FORCE_PARALLEL_DDL_DOP" = 16;