dbms_imci.columnar_advise()
ストアドプロシージャを呼び出して、IMCIの作成に使用されるDDLステートメントを取得します。 取得したDDL文を実行すると、IMCIが元々無効な列に有効なIMCIを設定できます。 SQLステートメントに含まれるすべての列でIMCIが有効になるまで、このプロセスを繰り返します。
前提条件
PolarDBクラスターでは、次のいずれかのバージョンを使用します。
リビジョンバージョンが8.0.1.1.30以降のPolarDB for MySQL 8.0.1のクラスター。
リビジョンバージョンが8.0.2.2.12以降のPolarDB for MySQL 8.0.2のクラスター。
指定されたテーブルに対する読み取り (SELECT) 権限があること。
構文
テーブルのIMCIの作成に使用されるDDLステートメントを取得します。
dbms_imci.columnar_advise('<query_string>');
指定された列のIMCIの作成に使用されるDDL文を取得します。
dbms_imci.columnar_advise_by_columns('<query_string>');
Parameters
パラメーター | 説明 |
query_string | 解析されるSQLステートメント。 説明
|
注意事項
ストアドプロシージャを呼び出して、DDL文のみを取得し、DDL文は実行しません。
例
t1
およびt2
の表は、以下の実施例で使用される。
次のステートメントを実行して、
test
データベースに切り替えます。使用テスト;
次のステートメントを実行して、
t1
およびt2
テーブルを作成します。create table t1 (a int, b int) engine = innodb; 作成テーブルt2 (a int, b int) engine = innodb;
ストアドプロシージャを呼び出して、DDLステートメントを取得します。
テーブルのIMCIの作成に使用されるDDLステートメントを取得します。
dbms_imci.columnar_advise('select count(t1.a) from t1 inner join t2 on t1.a = t2.a group by t1.b ');
サンプル結果:
+ ------------------------------------------- + | DDL_STATEMENT | + ------------------------------------------- + | ALTER TABLE test.t1 COMMENT='COLUMNAR=1 '; | | ALTER TABLE test.t2 COMMENT='COLUMNAR=1 '; | + ------------------------------------------- + セットの2列 (0.00秒)
SELECTステートメントに含まれる
t1
およびt2
テーブルの列にはIMCIは作成されません。 ストアドプロシージャを呼び出した後、IMCIの作成に使用されるDDLステートメントを取得します。 DDL文が実行されると、t1
およびt2
テーブルのすべての列にIMCIが追加されます。指定された列のIMCIの作成に使用されるDDL文を取得します。
call dbms_imci.columnar_advise_by_columns('select count(t1.a) from t1 inner join t2 on t1.a = t2.a group by t1.b ');
サンプル結果:
mysql> call dbms_imci.columnar_advise_by_columns (t1.aから 'select count(t1.a) from t1 inner join t2 on t1.a = t2.a group by t1.b '); + ------------------------------------------------------------------------------------------------------------------------------------------- + | DDL_STATEMENT | + ------------------------------------------------------------------------------------------------------------------------------------------- + | ALTER TABLE test.t1 MODIFY COLUMN a int(11) DEFAULT NULL COMMENT 'COLUMNAR=1 ', MODIFY COLUMN b int(11) DEFAULT NULL COMMENT 'COLUMNAR=1'; | | ALTER TABLE test.t2 MODIFY COLUMN a int(11) DEFAULT NULL COMMENT 'COLUMNAR=1 '; | + ------------------------------------------------------------------------------------------------------------------------------------------- + セットの2列 (0.00秒)
SELECTステートメントには、
t1.a
、t1.b
、およびt2.a
列のみが含まれます。dbms_imci.columnar_advise_by_columns()
ストアドプロシージャを呼び出して、指定した列のIMCIの作成に使用されるDDLステートメントを取得できます。 DDLステートメントを実行し、SELECTステートメントに含まれるすべての列でIMCIが有効であることを確認します。