All Products
Search
Document Center

AnalyticDB:Parameter konfigurasi config dan hint

Last Updated:May 14, 2026

AnalyticDB for MySQL mendukung dua metode konfigurasi parameter:

  • SET ADB_CONFIG KEY=VALUE — menerapkan pengaturan di seluruh kluster (cakupan global).

  • Hints (/*+ KEY=VALUE*/) — hanya berlaku untuk satu pernyataan SQL.

Jika parameter yang sama dikonfigurasi dengan kedua metode tersebut, hint memiliki prioritas lebih tinggi.

Mulai dari versi kluster Milvus 3.2.5, sistem memvalidasi tipe konfigurasi.

Parameter konfigurasi umum

Untuk melihat dan memperbarui versi minor kluster Anda, buka bagian Configuration Information pada halaman Cluster Information di Konsol AnalyticDB for MySQL.

Jendela Peralihan

REPLICATION_SWITCH_TIME_RANGE

Menentukan jendela waktu alih bencana selama skala keluar kluster. Selama alih bencana, kluster lama melayani trafik read-only selama 5–10 menit. Konfigurasikan parameter ini pada kluster lama setelah terhubung ke kluster tersebut.

Jika jendela waktu tidak ditetapkan, kluster akan beralih secara otomatis setelah semua data inkremental dari kluster lama disinkronkan ke kluster baru.

Sintaksis:

SET ADB_CONFIG REPLICATION_SWITCH_TIME_RANGE=`23:00, 23:30`;

Lihat juga: Memperluas kapasitas kluster Edisi Data Warehouse

Batas kueri

MAX_IN_ITEMS_COUNT

Menetapkan jumlah maksimum nilai yang diperbolehkan dalam kondisi IN. Nilai harus berupa bilangan bulat positif.

Versi kluster Bawaan
3.1.8 dan sebelumnya 2000
3.1.9.x – 3.1.10.x 4000
3.2.1 dan seterusnya 20000

Sintaksis:

SET ADB_CONFIG MAX_IN_ITEMS_COUNT=4000;

Lihat juga: Penulisan dan kueri

MAX_SELECT_ITEMS_COUNT

Menetapkan jumlah maksimum kolom dalam pernyataan SELECT. Nilai bawaan: 1024. Peningkatan parameter ini dapat memengaruhi stabilitas kluster. Disarankan agar Anda tidak mengubahnya secara manual.

Sintaksis:

SET ADB_CONFIG MAX_SELECT_ITEMS_COUNT=1000;

Lihat juga: Penulisan dan kueri

QUERY_TIMEOUT

Menetapkan timeout untuk fase eksekusi kueri. Nilai bawaan: 1800000 ms (30 menit).

Parameter ini hanya mengontrol timeout eksekusi pernyataan SQL dan tidak memengaruhi timeout koneksi atau timeout sesi idle.

Sintaksis:

SET ADB_CONFIG QUERY_TIMEOUT=1000;

INSERT_SELECT_TIMEOUT

Menetapkan waktu eksekusi maksimum untuk pernyataan INSERT, UPDATE, dan DELETE di tingkat kluster.

  • Bawaan: 24×3600000 ms

  • Nilai harus berupa bilangan bulat positif. Satuan: milidetik (ms).

Sintaksis:

SET ADB_CONFIG INSERT_SELECT_TIMEOUT=3600000;

Lihat juga: Batas

Penurunan predikat

FILTER_NOT_PUSHDOWN_COLUMNS / NO_INDEX_COLUMNS

Menonaktifkan penurunan predikat untuk kolom tertentu di tingkat kluster. Nama parameter tergantung pada versi kluster Anda:

Versi kluster Parameter
3.1.4 dan seterusnya FILTER_NOT_PUSHDOWN_COLUMNS
Sebelum 3.1.4 NO_INDEX_COLUMNS

Sintaksis:

-- Versi kluster 3.1.4 dan seterusnya
SET ADB_CONFIG FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.tableName1:colName1|colName2;Schema2.tableName2:colName1|colName2];

-- Sebelum 3.1.4
SET ADB_CONFIG NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1];

Lihat juga: Kondisi filter tanpa pushdown

Mode eksekusi kueri

QUERY_TYPE

Mengalihkan mode eksekusi kueri untuk kluster.

  • Nilai yang valid: interactive, batch

Parameter ini tidak tersedia untuk kluster Edisi Data Warehouse dalam mode reserved, atau untuk kluster Edisi Perusahaan, Edisi Dasar, dan Edisi Data Lakehouse.

Sintaksis:

SET ADB_CONFIG QUERY_TYPE=interactive;

Lihat juga: Mode eksekusi kueri

Konkurensi antrian kueri

Parameter-parameter ini mengontrol konkurensi maksimum dan kedalaman antrian untuk setiap tingkat prioritas per node frontend.

Parameter Antrian Bawaan Deskripsi
XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE LOWEST 20 Jumlah maksimum kueri konkuren
XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE LOWEST 200 Jumlah maksimum kueri dalam antrian
XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE LOW 20 Jumlah maksimum kueri konkuren
XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE LOW 200 Jumlah maksimum kueri dalam antrian
XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE NORMAL 20 Jumlah maksimum kueri konkuren. Jika batas terlampaui, kueri baru akan masuk antrian. Jika antrian juga penuh, sistem akan mengembalikan error "Too many queued queries". Anda dapat meningkatkan nilai ini atau membuat kelompok resource kustom untuk mendistribusikan beban.
XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE NORMAL 200 Jumlah maksimum kueri dalam antrian
XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE HIGH 40 Jumlah maksimum kueri konkuren
XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE HIGH 400 Jumlah maksimum kueri dalam antrian

Sintaksis:

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE=20;
SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE=200;

Lihat juga: Antrian prioritas dan konkurensi kelompok resource interaktif

Pengaturan pekerjaan BSP XIHE

Pekerjaan BSP (Bulk Synchronous Parallel) dijalankan di mesin XIHE. Parameter berikut mengontrol prioritas, batas sumber daya, dan timeout-nya.

QUERY_PRIORITY

Menetapkan prioritas penjadwalan untuk pekerjaan BSP.

  • Nilai yang valid: HIGH, NORMAL, LOW, LOWEST

  • Bawaan: NORMAL

Sintaksis:

SET ADB_CONFIG QUERY_PRIORITY=HIGH;

Lihat juga: Daftar item konfigurasi

ELASTIC_JOB_MAX_ACU

Menetapkan jumlah maksimum ACU (AnalyticDB Compute Units) yang dapat digunakan oleh satu pekerjaan BSP.

  • Bawaan: 9

  • Minimum: 3

  • Rentang valid: [3, jumlah maksimum ACU dari kelompok resource bertipe Job]

Sintaksis:

SET ADB_CONFIG ELASTIC_JOB_MAX_ACU=20;

BATCH_QUERY_TIMEOUT

Menetapkan timeout untuk pekerjaan BSP. Nilai harus berupa bilangan bulat positif. Satuan: milidetik (ms).

  • Bawaan: 7200000 ms

Sintaksis:

SET ADB_CONFIG BATCH_QUERY_TIMEOUT=3600000;

Impor tabel eksternal

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Mengontrol apakah Hive mengirimkan tugas split ke antrian secara asinkron saat menghasilkan rencana eksekusi.

  • Nilai yang valid: true, false

  • Bawaan: false

Memerlukan versi kluster 3.1.10.1 atau lebih baru.

Sintaksis:

SET ADB_CONFIG HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true;

SQL_OUTPUT_BATCH_SIZE

Menetapkan jumlah baris per batch saat mengimpor data dari tabel eksternal MaxCompute. Nilai harus berupa bilangan bulat positif.

Sintaksis:

SET ADB_CONFIG SQL_OUTPUT_BATCH_SIZE=6000;

Lihat juga: Impor dan ekspor

ENABLE_ODPS_MULTI_PARTITION_PART_MATCH

Mengontrol apakah sistem melakukan pra-traversal partisi MaxCompute untuk mendapatkan jumlah catatan tiap partisi sebelum eksekusi kueri.

  • Nilai yang valid: true, false

Sintaksis:

SET ADB_CONFIG ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

ASYNC_GET_SPLIT

Mengontrol apakah MaxCompute mengirimkan tugas pemuatan split ke antrian secara asinkron saat menghasilkan rencana eksekusi.

  • Nilai yang valid: true, false

  • Bawaan: false

Memerlukan versi kluster 3.1.10.1 atau lebih baru.

Sintaksis:

SET ADB_CONFIG ASYNC_GET_SPLIT=true;

Penjadwalan pekerjaan BUILD

RC_CSTORE_BUILD_SCHEDULE_PERIOD

Membatasi rentang waktu penjadwalan tugas BUILD (bukan eksekusi). Nilai harus berupa bilangan bulat antara 0 dan 24.

Sintaksis:

SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`6,8`;

Lihat juga: Mengonfigurasi waktu penjadwalan BUILD otomatis

RC_BUILD_TASK_PRIORITY_LIST

Menetapkan prioritas penjadwalan untuk pekerjaan BUILD pada satu atau beberapa tabel. Prioritas tetap berlaku hingga Anda menetapkan yang baru.

  • Prioritas dikontrol oleh parameter task_priority. Nilai harus berupa bilangan bulat.

  • Bawaan: 0

Sintaksis:

SET ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST=`<db1_name>.<table1_name>.<task_priority>;<db2_name>.<table2_name>.<task_priority>`;

Lihat juga: BUILD

Impor elastis

RC_ELASTIC_JOB_SCHEDULER_ENABLE

Mengaktifkan fitur impor elastis secara manual.

Sintaksis:

SET ADB_CONFIG RC_ELASTIC_JOB_SCHEDULER_ENABLE=true;

Lihat juga:

Fungsi REMOTE_CALL

Gunakan parameter-parameter ini saat memanggil user-defined function (UDF) di Function Compute melalui fungsi REMOTE_CALL. Semua lima parameter diatur di tingkat kluster.

Parameter Deskripsi Contoh
XIHE_REMOTE_CALL_SERVER_ENDPOINT Titik akhir layanan internal layanan Function Compute. Lihat Titik akhir layanan. SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_ENDPOINT="1234567890000****.cn-zhangjiakou-internal.fc.aliyuncs.com"
XIHE_REMOTE_CALL_SERVER_AK ID AccessKey dari Akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki layanan Function Compute. SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_AK=************;
XIHE_REMOTE_CALL_SERVER_SK Secret AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki layanan Function Compute. SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=************;
XIHE_REMOTE_CALL_COMPRESS_ENABLED Apakah data dikompresi dalam format GZIP sebelum dikirim ke Function Compute. SET ADB_CONFIG REMOTE_CALL_COMPRESS_ENABLED=true;
XIHE_REMOTE_CALL_MAX_BATCH_SIZE Jumlah baris data yang dikirim ke Function Compute per batch. Bawaan: 500000. SET ADB_CONFIG XIHE_REMOTE_CALL_MAX_BATCH_SIZE=500000;

Lihat juga: User-defined function (UDF)

Kontrol konkurensi pemindaian

Parameter-parameter ini mengontrol jumlah maksimum tugas pemindaian yang dapat dijalankan secara konkuren untuk mencegah ketidakstabilan node akibat konsumsi sumber daya berlebihan.

SPLIT_FLOW_CONTROL_ENABLED

Mengaktifkan atau menonaktifkan kontrol konkurensi pemindaian di tingkat kluster.

  • Nilai yang valid: true, false

  • Bawaan: true

Sintaksis:

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true;

Lihat juga: Kontrol konkurensi pemindaian

NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED

Mengaktifkan penyesuaian dinamis konkurensi pemindaian per tugas berdasarkan kuota konkurensi pemindaian keseluruhan node.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true;

Kuota konkurensi pemindaian

Parameter Deskripsi Bawaan
MIN_RUNNING_SPLITS_LIMIT_PER_TASK Konkurensi pemindaian minimum per tugas. Rentang valid: [1, TARGET_RUNNING_SPLITS_LIMIT_PER_TASK]. 1
TARGET_RUNNING_SPLITS_LIMIT_PER_TASK Konkurensi pemindaian menengah per tugas. Kuota menyesuaikan naik atau turun relatif terhadap nilai ini. Rentang valid: [MIN_RUNNING_SPLITS_LIMIT_PER_TASK, MAX_RUNNING_SPLITS_LIMIT_PER_TASK]. 32
MAX_RUNNING_SPLITS_LIMIT_PER_TASK Konkurensi pemindaian maksimum per tugas. Harus lebih besar dari TARGET_RUNNING_SPLITS_LIMIT_PER_TASK. 64
WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE Kuota konkurensi pemindaian untuk node penyimpanan. Jangan ubah nilai bawaan — nilai yang salah akan menurunkan performa kluster. 256
EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE Kuota konkurensi pemindaian untuk node komputasi. Jangan ubah nilai bawaan — nilai yang salah akan menurunkan performa kluster. 256

Sintaksis:

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;
SET ADB_CONFIG TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32;
SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

Tampilan logis

VIEW_OUTPUT_NAME_CASE_SENSITIVE

Mengontrol apakah pencocokan nama kolom untuk tampilan logis bersifat case-sensitive.

  • Nilai yang valid: true (case-sensitive), false (case-insensitive)

  • Bawaan: false

Sintaksis:

SET ADB_CONFIG VIEW_OUTPUT_NAME_CASE_SENSITIVE=true;

Lihat juga: CREATE VIEW

Pernyataan Multi

ALLOW_MULTI_QUERIES

Mengaktifkan eksekusi beberapa pernyataan SQL dalam satu permintaan menggunakan fitur Multi-Statement. Fitur ini harus diaktifkan secara manual sebelum digunakan.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

SET ADB_CONFIG ALLOW_MULTI_QUERIES=true;

Lihat juga: Multi-Statement

Binary logging

BINLOG_ENABLE

Mengaktifkan binary logging di tingkat kluster.

  • Untuk kluster yang menjalankan versi sebelum 3.2.0.0: aktifkan parameter ini secara manual sebelum mengaktifkan binary logging untuk tabel individual.

  • Untuk kluster yang menjalankan versi 3.2.0.0 atau lebih baru: binary logging diaktifkan secara bawaan. Parameter ini tidak diperlukan.

Sintaksis:

SET ADB_CONFIG BINLOG_ENABLE=true;

Lihat juga: Memperbarui Tampilan yang di-materialisasi

Cache paging

Cache paging mengoptimalkan performa untuk kueri paging mendalam dengan menyimpan cache hasil antara.

Parameter Deskripsi Bawaan
PAGING_CACHE_SCHEMA Database yang menyimpan tabel cache sementara. Jika tidak diatur, database yang sedang terhubung akan digunakan.
PAGING_CACHE_MAX_TABLE_COUNT Jumlah maksimum tabel cache sementara. Pembuatan cache baru gagal jika batas ini tercapai. Harus berupa bilangan bulat positif. 100
PAGING_CACHE_EXPIRATION_TIME TTL cache (time-to-live) dalam detik. Sistem membersihkan cache yang tidak diakses dalam periode ini. Harus berupa bilangan bulat positif. 600
PAGING_CACHE_ENABLE Mengaktifkan atau menonaktifkan fitur cache paging secara global. true

Sintaksis:

SET ADB_CONFIG PAGING_CACHE_SCHEMA=paging_cache;
SET ADB_CONFIG PAGING_CACHE_MAX_TABLE_COUNT=100;
SET ADB_CONFIG PAGING_CACHE_EXPIRATION_TIME=600;
SET ADB_CONFIG PAGING_CACHE_ENABLE=false;

Lihat juga: Cache paging

Mesin tabel

RC_DDL_ENGINE_REWRITE_XUANWUV2

Menetapkan mesin tabel bawaan untuk tabel yang baru dibuat di tingkat kluster.

Nilai Perilaku
true (bawaan) Tabel baru menggunakan XUANWU_V2. Jika Anda secara eksplisit menentukan ENGINE=XUANWU, maka akan ditulis ulang secara otomatis menjadi XUANWU_V2. Tabel yang sudah ada tidak terpengaruh.
false Tabel baru menggunakan XUANWU. Tabel yang sudah ada tidak terpengaruh.

Sintaksis:

SET ADB_CONFIG RC_DDL_ENGINE_REWRITE_XUANWUV2=true;

See also: Tentukan mesin tabel

Hint umum

Hint hanya berlaku untuk pernyataan SQL tempat hint tersebut muncul dan tidak memengaruhi konfigurasi global. Gunakan sintaksis /*+ KEY=VALUE*/ tepat sebelum pernyataan.

Batas kueri

QUERY_TIMEOUT

Menetapkan timeout kueri untuk satu kueri. Nilai harus berupa bilangan bulat positif. Satuan: milidetik (ms).

Sintaksis:

/*+ QUERY_TIMEOUT=1000 */ SELECT COUNT(*) FROM t;

Lihat juga: Penulisan dan kueri

INSERT_SELECT_TIMEOUT

Menetapkan waktu eksekusi maksimum untuk pernyataan INSERT, UPDATE, dan DELETE untuk satu kueri.

  • Bawaan: 24×3600000 ms

  • Nilai harus berupa bilangan bulat positif. Satuan: milidetik (ms).

Sintaksis:

/*+ INSERT_SELECT_TIMEOUT=3600000 */ UPDATE customer SET customer_name='adb' WHERE customer_id='2369';

Lihat juga: Batas

MAX_SELECT_ITEMS_COUNT

Menetapkan jumlah maksimum kolom yang diperbolehkan dalam klausa SELECT.

  • Bawaan: 1024

  • Nilai harus berupa bilangan bulat positif.

Sintaksis:

/*+ MAX_SELECT_ITEMS_COUNT=2048*/

MAX_IN_ITEMS_COUNT

Menetapkan jumlah maksimum nilai yang diperbolehkan dalam kondisi IN untuk satu kueri.

  • Bawaan: 4000

  • Nilai harus berupa bilangan bulat positif.

Sintaksis:

/*+ MAX_IN_ITEMS_COUNT=1000*/

MAX_WHERE_ITEMS_COUNT

Menetapkan jumlah maksimum kondisi yang diperbolehkan dalam klausa WHERE.

  • Bawaan: 256

  • Nilai harus berupa bilangan bulat positif.

Sintaksis:

/*+ MAX_WHERE_ITEMS_COUNT=512*/

QUERY_MAX_SHUFFLE_DATA_SIZE_MB

Menetapkan volume data shuffle maksimum untuk suatu kueri. Jika kueri melebihi ambang batas ini, sistem akan menghentikannya dengan error. Secara bawaan, tidak ada batasan. Nilai harus berupa bilangan bulat positif. Satuan: MB.

Sintaksis:

/*+ QUERY_MAX_SHUFFLE_DATA_SIZE_MB=1024*/

Penurunan predikat

FILTER_NOT_PUSHDOWN_COLUMNS / NO_INDEX_COLUMNS

Menonaktifkan penurunan predikat untuk kolom tertentu di tingkat kueri. Nama parameter tergantung pada versi kluster Anda:

Versi kluster Parameter
3.1.4 dan seterusnya FILTER_NOT_PUSHDOWN_COLUMNS
Sebelum 3.1.4 NO_INDEX_COLUMNS

Sintaksis:

-- Versi kluster 3.1.4 dan seterusnya
/*+ FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.table1:colName1|colName2;Schema2.table2:colName1|colName2] */

-- Sebelum 3.1.4
/*+ NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1] */

Lihat juga: Kondisi filter tanpa pushdown

Penjadwalan pekerjaan BUILD

BUILD_TASK_PRIORITY

Menetapkan prioritas penjadwalan untuk tugas BUILD pada satu tabel. Nilai yang lebih tinggi berarti prioritas lebih tinggi.

  • Bawaan: 0

  • Nilai harus berupa bilangan bulat ≥ 0.

Hint ini hanya dapat menetapkan prioritas untuk satu tabel dalam satu waktu. Untuk menetapkan prioritas untuk beberapa tabel, gunakan parameter konfigurasi RC_BUILD_TASK_PRIORITY_LIST sebagai gantinya.

Sintaksis:

/*+ BUILD_TASK_PRIORITY=2 */ BUILD TABLE db.table;

Lihat juga: Mengonfigurasi prioritas penjadwalan BUILD

Impor elastis

ELASTIC_LOAD dan ELASTIC_LOAD_CONFIGS

Mengaktifkan impor elastis dan menentukan kelompok resource Job untuk menjalankan tugas impor.

Sintaksis:

/*+ ELASTIC_LOAD=true, ELASTIC_LOAD_CONFIGS=[adb.load.resource.group.name=resource_group]*/
SUBMIT JOB INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_external_db.person;

Lihat juga:

Penyesuaian rencana eksekusi

O_CBO_RULE_SWAP_OUTER_JOIN / LEFT_TO_RIGHT_ENABLED

Memerintahkan pengoptimal untuk mengubah Left Join menjadi Right Join ketika tabel kanan berukuran besar, sehingga mengurangi konsumsi memori. Nama parameter tergantung pada versi kluster Anda:

Versi kluster Parameter
3.1.8 dan seterusnya O_CBO_RULE_SWAP_OUTER_JOIN
Sebelum 3.1.8 LEFT_TO_RIGHT_ENABLED
  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ O_CBO_RULE_SWAP_OUTER_JOIN=true*/
/*+ LEFT_TO_RIGHT_ENABLED=true*/

Lihat juga: Mengubah LEFT JOIN menjadi RIGHT JOIN

REORDER_JOINS

Mengontrol penyesuaian urutan join secara otomatis. Saat dinonaktifkan, kueri dieksekusi sesuai urutan join yang ditulis dalam pernyataan SQL.

  • Nilai yang valid: true, false

  • Bawaan: true

Sintaksis:

/*+ REORDER_JOINS=false*/

Lihat juga: Menyesuaikan urutan join secara manual

AGGREGATION_PATH_TYPE

Mengontrol apakah pengoptimal melewati agregasi parsial dan langsung menuju agregasi final. Berguna ketika jumlah grup dalam kueri groupby sangat besar dan agregasi parsial mengonsumsi sumber daya berlebihan.

  • Nilai yang valid: single_agg (lewati agregasi parsial), auto (pengoptimal yang menentukan)

  • Bawaan: auto

Sintaksis:

/*+ AGGREGATION_PATH_TYPE=single_agg*/

Lihat juga: Optimasi kueri pengelompokan dan agregasi

Kebijakan runtime

HASH_PARTITION_COUNT

Menetapkan jumlah tugas konkuren untuk operasi komputasi. Nilai harus berupa bilangan bulat positif.

  • Bawaan: 32

Sintaksis:

/*+ HASH_PARTITION_COUNT=32*/

TASK_WRITER_COUNT

Menetapkan konkurensi penulisan untuk tugas impor INSERT INTO SELECT. Kurangi nilai ini jika beban worker terlalu tinggi. Nilai harus berupa bilangan bulat positif.

  • Bawaan: 16

Sintaksis:

/*+ TASK_WRITER_COUNT=8*/

CTE_EXECUTION_MODE

Mengontrol apakah subkueri Common Table Expression (CTE) yang direferensikan beberapa kali dieksekusi hanya sekali (mode bersama) atau setiap kali direferensikan (mode inline).

  • Nilai yang valid: shared (eksekusi sekali), inline (eksekusi setiap kali)

  • Bawaan: inline

Sintaksis:

/*+ CTE_EXECUTION_MODE=shared*/

Lihat juga: WITH

Pengaturan pekerjaan BSP XIHE

QUERY_PRIORITY

Menetapkan prioritas penjadwalan untuk pekerjaan BSP di tingkat kueri.

  • Nilai yang valid: HIGH, NORMAL, LOW, LOWEST

  • Bawaan: NORMAL

Sintaksis:

/*+ QUERY_PRIORITY=HIGH*/

Lihat juga: Daftar item konfigurasi

ELASTIC_JOB_MAX_ACU

Menetapkan jumlah maksimum ACU yang dapat digunakan oleh satu pekerjaan BSP di tingkat kueri.

  • Bawaan: 9

  • Minimum: 3

  • Rentang valid: [3, jumlah maksimum ACU dari kelompok resource bertipe Job]

Sintaksis:

/*+ ELASTIC_JOB_MAX_ACU=20*/

BATCH_QUERY_TIMEOUT

Menetapkan timeout untuk pekerjaan BSP di tingkat kueri. Nilai harus berupa bilangan bulat positif. Satuan: milidetik (ms).

  • Bawaan: 7200000 ms

Sintaksis:

/*+ BATCH_QUERY_TIMEOUT=3600000*/

Tabel eksternal OSS

OUTPUT_FILENAME

Menyesuaikan nama file saat mengekspor data ke tabel eksternal OSS. Tambahkan hint ini sebelum pernyataan ekspor.

Sintaksis:

/*+ OUTPUT_FILENAME=output.csv*/

Lihat juga: Ekspor ke OSS

SQL_OUTPUT_OSS_FILE_HEAD_ENABLE

Mengontrol apakah file yang diekspor ke OSS menyertakan nama kolom. Secara bawaan, file yang diekspor hanya berisi data.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Mengontrol apakah Hive mengirimkan tugas split secara asinkron saat menghasilkan rencana eksekusi.

  • Nilai yang valid: true, false

  • Bawaan: false

Memerlukan versi kluster 3.1.10.1 atau lebih baru.

Sintaksis:

/*+ HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true*/

Lihat juga: Mengimpor data OSS menggunakan tabel eksternal

FAST_PARQUET_READER_ENABLE

Kembali ke pembaca Parquet native ketika statistik dalam file Parquet tidak benar.

  • Nilai yang valid: true, false

  • Bawaan: true

Sintaksis:

/*+ FAST_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_ENABLE

Mengaktifkan pembacaan Parquet vektorisasi untuk data yang tidak mengandung nilai NULL.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ OSS_VECTORIZED_PARQUET_READER_ENABLE=true*/

OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE

Mengaktifkan pembacaan Parquet vektorisasi untuk data yang mengandung nilai NULL.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE=true*/

Tabel eksternal Hudi

HUDI_METADATA_TABLE_ENABLED

Mengontrol apakah metadata Hudi dimuat saat mengkueri tabel Hudi.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ HUDI_METADATA_TABLE_ENABLED=true*/

HUDI_QUERY_TYPE

Menetapkan metode kueri untuk tabel Hudi.

Nilai Deskripsi
read_optimized (bawaan) Mengembalikan data dari kompaksi atau commit terbaru.
snapshot Mengembalikan semua data yang telah di-commit atau dikompaksi hingga titik waktu tertentu.

Sintaksis:

/*+ HUDI_QUERY_TYPE=snapshot*/

HUDI_REALTIME_SKIP_MERGE

Dalam mode kueri snapshot, mengontrol apakah penggabungan record dari file dasar dan file log dilewati.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ HUDI_REALTIME_SKIP_MERGE=true*/

Pengaturan split dan performa Hudi

Parameter Deskripsi Bawaan
HUDI_MAX_SPLIT_SIZE Ukuran split maksimum. Satuan: MB. 128
HUDI_SPLIT_PARALLEL_GENERATION_ENABLED Apakah split dihasilkan secara paralel. true
HUDI_DATA_SKIPPING_ENABLED Menggunakan statistik Hudi MetaTable untuk melewati shard yang tidak diperlukan selama pembacaan, sehingga meningkatkan performa kueri. false
HUDI_SPLIT_ASYNC_GENERATION_ENABLED Apakah split Hudi dihasilkan secara asinkron selama pembuatan rencana eksekusi. true

Sintaksis:

/*+ HUDI_MAX_SPLIT_SIZE=128*/
/*+ HUDI_SPLIT_PARALLEL_GENERATION_ENABLED=true*/
/*+ HUDI_DATA_SKIPPING_ENABLED=true*/
/*+ HUDI_SPLIT_ASYNC_GENERATION_ENABLED=true*/

Tabel eksternal ApsaraDB RDS for MySQL

JDBC_SCAN_SPLITS

Menetapkan jumlah split selama pemindaian tabel berbasis Java Database Connectivity (JDBC).

  • Bawaan: 1

  • Rentang valid: 1–100

Sintaksis:

/*+ JDBC_SCAN_SPLITS=1*/

Lihat juga: Menggunakan tabel eksternal untuk mengimpor data dari RDS for MySQL

JDBC_SPLIT_COLUMN

Menentukan kolom yang digunakan untuk membagi data saat membaca tabel eksternal ApsaraDB RDS for MySQL.

Sintaksis:

/*+ JDBC_SPLIT_COLUMN=column1*/

JDBC_INSERT_DIRECTLY

Menulis data langsung ke tabel target alih-alih menampungnya terlebih dahulu di tabel sementara. Penulisan langsung lebih cepat tetapi dapat meninggalkan data kotor di tabel target jika terjadi error.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ JDBC_INSERT_DIRECTLY=true*/

Tabel eksternal Tablestore

OTS-INSERT-AS-UPDATE

Menggunakan pernyataan INSERT alih-alih pernyataan UPDATE saat menulis ke tabel eksternal Tablestore.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ OTS-INSERT-AS-UPDATE=true*/

Lihat juga: Mengkueri dan mengimpor data Tablestore

Tabel eksternal MaxCompute

ODPS_SPLIT_LIMIT

Menetapkan jumlah maksimum split saat membaca data MaxCompute melalui Tunnel.

  • Bawaan: 1000

  • Rentang valid: 1–1000

Sintaksis:

/*+ ODPS_SPLIT_LIMIT=1000*/

Lihat juga: Mengimpor data MaxCompute menggunakan tabel eksternal

IGNORE_PARTITION_CACHE

Mengkueri metadata partisi langsung dari tabel MaxCompute alih-alih menggunakan metadata cache. Berguna ketika data partisi telah berubah sejak cache diisi.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ IGNORE_PARTITION_CACHE=true*/

ROWS_PER_SPLIT

Menetapkan jumlah maksimum baris yang dapat dibaca oleh satu split melalui Tunnel.

  • Bawaan: 500000

  • Rentang valid: 10000–500000

Sintaksis:

/*+ ROWS_PER_SPLIT=500000*/

STORAGE_API_ENABLED

Menggunakan MaxCompute Storage API alih-alih Tunnel untuk membaca data MaxCompute. Storage API secara signifikan meningkatkan performa baca.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*+ STORAGE_API_ENABLED=true*/

Pengaturan split MaxCompute Storage API

Semua parameter di bawah ini berlaku saat membaca data melalui MaxCompute Storage API.

Parameter Deskripsi Bawaan
APLIT_BYTE_SIZE Ukuran maksimum satu split. Satuan: MB. 256
MAX_BATCH_ROW_COUNT Jumlah maksimum baris dalam satu split. 1024
PAGE_BATCH_SIZE Jumlah maksimum baris per halaman. 1024
MAX_ALLOCATION_PER_SPLIT Memori puncak maksimum yang dialokasikan di tingkat split. Satuan: MB. 300
ASYNC_GET_SPLIT Apakah tugas pemuatan split dikirimkan secara asinkron. Memerlukan versi kluster 3.1.10.1 atau lebih baru. false

Sintaksis:

/*+ APLIT_BYTE_SIZE=256*/
/*+ MAX_BATCH_ROW_COUNT=1024*/
/*+ PAGE_BATCH_SIZE=1024*/
/*+ MAX_ALLOCATION_PER_SPLIT=300*/
/*+ ASYNC_GET_SPLIT=true*/

Kontrol konkurensi pemindaian

SPLIT_FLOW_CONTROL_ENABLED

Mengaktifkan atau menonaktifkan kontrol konkurensi pemindaian di tingkat kueri.

  • Nilai yang valid: true (aktifkan), false (nonaktifkan)

  • Bawaan: true

Sintaksis:

/*+ SPLIT_FLOW_CONTROL_ENABLED=true*/ SELECT * FROM table;

Lihat juga: Kontrol konkurensi pemindaian

Kuota konkurensi pemindaian (tingkat kueri)

Parameter Deskripsi Bawaan Contoh
MIN_RUNNING_SPLITS_LIMIT_PER_TASK Konkurensi pemindaian minimum per tugas. Rentang valid: [1, TARGET_RUNNING_SPLITS_LIMIT_PER_TASK]. 1 /*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/ SELECT * FROM orders;
TARGET_RUNNING_SPLITS_LIMIT_PER_TASK Konkurensi pemindaian menengah per tugas. Rentang valid: [MIN_RUNNING_SPLITS_LIMIT_PER_TASK, MAX_RUNNING_SPLITS_LIMIT_PER_TASK]. 32 /*+ TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32*/ SELECT * FROM adb_test;
MAX_RUNNING_SPLITS_LIMIT_PER_TASK Konkurensi pemindaian maksimum per tugas. Harus lebih besar dari TARGET_RUNNING_SPLITS_LIMIT_PER_TASK. 64 /*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/ SELECT * FROM adb_test;

Cache Paging

PAGING_ID

Mengaktifkan cache paging dan secara manual menentukan paging_id untuk mengelompokkan kueri paging terkait (kueri dengan pola yang sama yang hanya berbeda pada nilai LIMIT dan OFFSET).

Sintaksis:

/*PAGING_ID=paging123*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

Lihat juga: Cache paging

PAGING_CACHE_ENABLED

Mengaktifkan cache paging dan secara otomatis menghasilkan paging_id berdasarkan pola SQL.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*PAGING_CACHE_ENABLED=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

PAGING_CACHE_VALIDITY_INTERVAL

Menetapkan periode validitas cache dalam detik. Setelah periode ini, cache kedaluwarsa. Jika cache tidak diakses dalam satu jam setelah kedaluwarsa, sistem akan menghapus tabel sementara yang sesuai. Nilai harus berupa bilangan bulat positif. Gunakan bersama PAGING_CACHE_ENABLED.

Sintaksis:

/*PAGING_CACHE_ENABLED=true, PAGING_CACHE_VALIDITY_INTERVAL=300*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

INVALIDATE_PAGING_CACHE

Menghapus cache paging untuk pola kueri tertentu. Gunakan bersama PAGING_ID atau PAGING_CACHE_ENABLED.

  • Nilai yang valid: true, false

  • Bawaan: false

Sintaksis:

/*PAGING_CACHE_ENABLED=true, INVALIDATE_PAGING_CACHE=true*/ SELECT * FROM t_order ORDER BY id LIMIT 0, 100;

Mesin tabel

RC_DDL_ENGINE_REWRITE_XUANWUV2

Menentukan mesin tabel untuk tabel yang dibuat oleh pernyataan SQL saat ini.

Nilai Perilaku
true (bawaan) Tabel baru menggunakan XUANWU_V2. Jika Anda secara eksplisit menentukan ENGINE=XUANWU, maka akan ditulis ulang secara otomatis menjadi XUANWU_V2. Tabel yang sudah ada tidak terpengaruh.
false Tabel baru menggunakan XUANWU. Tabel yang sudah ada tidak terpengaruh.

Sintaksis:

/*+ RC_DDL_ENGINE_REWRITE_XUANWUV2=true */

Lihat juga: Menentukan mesin tabel

Hint lainnya

RESOURCE_GROUP

Menentukan kelompok resource untuk suatu kueri. Jika tidak diatur, kelompok resource yang terikat pada akun database akan digunakan. Jika akun tidak memiliki kelompok resource yang terikat, kelompok resource bawaan akan digunakan.

Sintaksis:

/*+ RESOURCE_GROUP=my_group_name*/

DML_EXCEPTION_TO_NULL_ENABLED

Mengontrol cara menangani nilai tidak valid dalam pernyataan INSERT SELECT.

  • Nilai yang valid: true (menulis NULL alih-alih melemparkan error), false (melemparkan error)

  • Bawaan: false

Sintaksis:

/*+ DML_EXCEPTION_TO_NULL_ENABLED=true*/

DISPLAY_HINT

Memberi label pada kueri untuk identifikasi, seperti menandai kueri dari tim bisnis yang berbeda.

Sintaksis:

/*+ DISPLAY_HINT=from_user_123*/

FAQ

Bagaimana cara mengembalikan parameter konfigurasi ke nilai bawaannya?

Jalankan SET ADB_CONFIG REMOVE <key> untuk menghapus pengaturan dan mengembalikan nilai bawaan:

SET ADB_CONFIG REMOVE QUERY_TIMEOUT; -- Mengembalikan timeout kueri ke nilai bawaannya.

Untuk memastikan parameter telah dikembalikan, jalankan:

SHOW ADB_CONFIG KEY=<key>;