Anda dapat memanggil prosedur tersimpan dbms_imci.columnar_advise() untuk mendapatkan pernyataan DDL yang digunakan dalam pembuatan IMCI. Saat mengeksekusi pernyataan DDL yang dihasilkan, Anda dapat mengonfigurasi IMCI agar valid untuk kolom-kolom yang awalnya tidak valid. Ulangi proses ini hingga IMCI valid untuk semua kolom yang terlibat dalam pernyataan SQL.
Prasyarat
Kluster PolarDB Anda menggunakan salah satu versi berikut:
Kluster PolarDB for MySQL 8.0.1 dengan versi revisi 8.0.1.1.30 atau lebih baru.
Kluster PolarDB for MySQL 8.0.2 dengan versi revisi 8.0.2.2.12 atau lebih baru.
Anda memiliki izin baca (SELECT) pada tabel tertentu.
Sintaksis
Mendapatkan pernyataan DDL untuk membuat IMCI pada sebuah tabel.
dbms_imci.columnar_advise('<query_string>');Mendapatkan pernyataan DDL untuk membuat IMCI pada kolom tertentu.
dbms_imci.columnar_advise_by_columns('<query_string>');
Parameter
Parameter | Deskripsi |
query_string | Pernyataan SQL yang akan diurai. Catatan
|
Peringatan
Anda hanya dapat memanggil prosedur tersimpan untuk mendapatkan pernyataan DDL, tetapi tidak untuk mengeksekusinya.
Contoh
Tabel t1 dan t2 digunakan dalam contoh-contoh berikut.
Eksekusi pernyataan berikut untuk beralih ke database
test:use test;Eksekusi pernyataan berikut untuk membuat tabel
t1dant2:create table t1 (a int, b int) engine = innodb; create table t2 (a int, b int) engine = innodb;Panggil prosedur tersimpan untuk mendapatkan pernyataan DDL.
Mendapatkan pernyataan DDL untuk membuat IMCI pada sebuah tabel.
call dbms_imci.columnar_advise('select count(t1.a) from t1 inner join t2 on t1.a = t2.a group by t1.b');Hasil sampel:
+-------------------------------------------+ | DDL_STATEMENT | +-------------------------------------------+ | ALTER TABLE test.t1 COMMENT='COLUMNAR=1'; | | ALTER TABLE test.t2 COMMENT='COLUMNAR=1'; | +-------------------------------------------+ 2 rows in set (0.00 sec)Tidak ada IMCI yang dibuat untuk kolom dalam tabel
t1dant2yang terlibat dalam pernyataan SELECT. Setelah Anda memanggil prosedur tersimpan untuk mendapatkan pernyataan DDL yang digunakan untuk membuat IMCI, eksekusi pernyataan DDL tersebut akan menambahkan IMCI untuk semua kolom dalam tabelt1dant2.Mendapatkan pernyataan DDL untuk membuat IMCI pada kolom tertentu.
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');Hasil sampel:
mysql> 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'); +-------------------------------------------------------------------------------------------------------------------------------------------+ | 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 rows in set (0.00 sec)Hanya kolom
t1.a,t1.b, dant2.ayang terlibat dalam pernyataan SELECT. Anda dapat memanggil prosedur tersimpandbms_imci.columnar_advise_by_columns()untuk mendapatkan pernyataan DDL yang digunakan untuk membuat IMCI pada kolom tertentu. Eksekusi pernyataan DDL tersebut dan pastikan bahwa IMCI valid untuk semua kolom yang terlibat dalam pernyataan SELECT.