全部产品
Search
文档中心

Hologres:Parameter GUC

更新时间:Jul 02, 2025

Untuk mendukung berbagai skenario, Hologres menyediakan parameter Grand Unified Configuration (GUC). Topik ini menjelaskan parameter GUC yang disediakan oleh Hologres dan cara menggunakannya.

Batasan

Parameter GUC tidak berlaku untuk tabel sistem.

Parameter GUC

Parameter GUC

Deskripsi

Catatan

Contoh

hg_enable_start_auto_analyze_worker

Parameter ini digunakan untuk menentukan apakah fitur auto-analyze diaktifkan dan mengonfigurasi fitur auto-analyze. Untuk informasi lebih lanjut, lihat ANALYZE dan auto-analyze.

Nilai default adalah on untuk Hologres V1.1 dan versi lebih baru.

set hg_enable_start_auto_analyze_worker = on;

hg_auto_check_table_changes_interval

Nilai default: 10min.

set hg_auto_check_table_changes_interval = '10min';

hg_auto_check_foreign_table_changes_interval

Nilai default: 4h.

set hg_auto_check_foreign_table_changes_interval = '4h';

hg_auto_analyze_max_sample_row_count

Nilai default: 16777216.

set hg_auto_analyze_max_sample_row_count = 16777216;

hg_fixed_api_modify_max_delay_interval

Nilai default: 3day.

set hg_fixed_api_modify_max_delay_interval = '3day';

hg_foreign_table_max_partition_limit

Parameter ini menentukan jumlah maksimum partisi yang dapat dijangkau oleh setiap query pada tabel MaxCompute. Anda dapat menggunakan parameter ini untuk menyesuaikan batas.

  • Pada versi sebelum Hologres V3.0.7:

    • Nilai default: 512.

    • Nilai valid: 0-1024.

  • Pada Hologres V3.0.7 dan versi lebih baru:

    • Nilai default: 0, yang menunjukkan tidak ada batasan.

    • Nilai valid: 0-1024.

set hg_foreign_table_max_partition_limit = 128;

hg_experimental_query_batch_size

Parameter ini digunakan untuk mengoptimalkan kinerja query tabel MaxCompute di Hologres. Untuk informasi lebih lanjut, lihat Optimalkan kinerja query tabel MaxCompute di Hologres.

Nilai default: 8192.

set hg_experimental_query_batch_size = 4096;

hg_foreign_table_split_size

Nilai default: 64. Kami merekomendasikan agar Anda tidak menyetel parameter ini ke nilai yang terlalu besar.

set hg_foreign_table_split_size = 128;

hg_foreign_table_executor_max_dop

Nilai default dari parameter ini sama dengan jumlah core CPU dari instance Hologres. Nilai maksimumnya adalah 128.

set hg_foreign_table_executor_max_dop = 32;

hg_foreign_table_executor_dml_max_dop

Nilai default: 32.

set hg_foreign_table_executor_dml_max_dop = 16;

hg_enable_access_odps_orc_via_holo

Nilai default adalah on untuk Hologres V1.1 dan versi lebih baru.

set hg_enable_access_odps_orc_via_holo = on;

hg_experimental_enable_result_cache

Parameter ini menentukan apakah caching hasil diaktifkan.

Nilai default: on. Kami merekomendasikan agar Anda tidak menonaktifkan fitur caching hasil.

set hg_experimental_enable_result_cache = on;

optimizer_join_order

Parameter ini digunakan untuk mengoptimalkan kinerja query tabel internal. Untuk informasi lebih lanjut, lihat Optimalkan kinerja query.

Nilai default: exhaustive. Anda dapat menggunakan parameter ini diikuti dengan pernyataan SQL query.

set optimizer_join_order = query;

optimizer_force_multistage_agg

Nilai default: off. Anda dapat menyetel parameter ini ke on sesuai dengan kebutuhan bisnis Anda.

set optimizer_force_multistage_agg = on;

hg_anon_enable

Parameter ini menentukan apakah fitur masking data diaktifkan. Untuk informasi lebih lanjut, lihat Masking data.

Nilai default: off. Kami merekomendasikan agar Anda mengaktifkan fitur masking data di tingkat database sesuai dengan kebutuhan bisnis Anda.

alter database <db_name> set hg_anon_enable = on;

hg_experimental_encryption_options

Parameter ini menentukan apakah enkripsi data diaktifkan dan digunakan untuk mengonfigurasi fitur enkripsi data. Untuk informasi lebih lanjut, lihat Enkripsi data di Hologres.

Nilai default: off. Kami merekomendasikan agar Anda mengaktifkan fitur enkripsi data di tingkat database sesuai dengan kebutuhan bisnis Anda.

alter database <db_name> set hg_experimental_encryption_options='AES256,623c26ee-xxxx-xxxx-xxxx-91d323cc4855,AliyunHologresEncryptionDefaultRole,187xxxxxxxxxxxxx';

statement_timeout

Parameter ini menentukan periode timeout untuk query aktif. Untuk informasi lebih lanjut, lihat Kelola query.

Nilai default: 8h. Kami merekomendasikan agar Anda mengonfigurasi granularitas waktu di tingkat sesi sesuai dengan kebutuhan bisnis Anda.

set statement_timeout = 5000 ;

idle_in_transaction_session_timeout

Parameter ini menentukan periode timeout untuk query idle. Untuk informasi lebih lanjut, lihat Kelola query.

Nilai default: 10min. Kami merekomendasikan agar Anda mengonfigurasi parameter ini di tingkat database. Jika tidak, jika terjadi kebocoran transaksi, database akan terkunci.

alter database db_name set idle_in_transaction_session_timeout=300000;

idle_session_timeout

Parameter ini menentukan periode timeout setelah koneksi idle dilepaskan secara otomatis. Untuk informasi lebih lanjut, lihat Kelola koneksi.

Nilai default: 0, yang menunjukkan bahwa koneksi idle tidak dilepaskan secara otomatis. Kami merekomendasikan agar Anda tidak menggunakan nilai default. Jika tidak, jumlah koneksi ke instance Hologres Anda mungkin mencapai batas atas dan terjadi kebocoran koneksi.

alter database <db_name> SET idle_session_timeout = 600000;

hg_experimental_functions_use_pg_implementation

Parameter ini menentukan rentang waktu untuk fungsi konversi tipe data yang didukung oleh Hologres. Secara default, rentang waktu yang didukung oleh fungsi to_char, to_date, dan to_timestamp adalah 1925 hingga 2282. Anda dapat mengonfigurasi parameter ini untuk memperluas rentang waktu menjadi 0000 hingga 9999. Untuk informasi lebih lanjut, lihat Fungsi konversi tipe data.

Hologres V1.1.31 dan versi lebih baru mendukung parameter ini. Setelah Anda mengonfigurasi parameter ini untuk fungsi konversi tipe data, rentang waktu yang didukung oleh fungsi tersebut adalah 0000 hingga 9999.

set hg_experimental_functions_use_pg_implementation = 'to_char';

hg_experimental_approx_count_distinct_precision

Parameter ini digunakan untuk menyesuaikan margin kesalahan untuk fungsi APPROX_COUNT_DISTINCT. Untuk informasi lebih lanjut, lihat APPROX_COUNT_DISTINCT.

Nilai default: 17. Nilai valid: 12 hingga 20.

set hg_experimental_approx_count_distinct_precision = 20;

timezone

Parameter ini menentukan zona waktu.

Nilai default: GMT-8:00.

set timezone='GMT-8:00';

hg_experimental_enable_create_table_like_properties

Parameter ini menentukan apakah properti tabel seperti skema tabel dan kunci utama serta indeks dicopy. Untuk informasi lebih lanjut, lihat CREATE TABLE LIKE.

Nilai default: off.

set hg_experimental_enable_create_table_like_properties=true;

hg_experimental_affect_row_multiple_times_keep_first

Parameter ini menentukan kebijakan pemrosesan konflik untuk pernyataan INSERT ON CONFLICT ketika Anda menyisipkan baris yang memiliki nilai kunci utama yang sama dengan data yang sudah ada. Untuk informasi lebih lanjut, lihat INSERT ON CONFLICT(UPSERT).

Nilai default: off.

set hg_experimental_affect_row_multiple_times_keep_first = on;

hg_experimental_affect_row_multiple_times_keep_last

set hg_experimental_affect_row_multiple_times_keep_last = on;

hg_experimental_enable_read_replica

Parameter ini menentukan apakah replikasi tingkat shard diaktifkan. Untuk informasi lebih lanjut, lihat Replikasi tingkat shard untuk instance Hologres.

Nilai default: on.

set hg_experimental_enable_read_replica = on;

hg_experimental_display_query_id

Parameter ini menentukan apakah ID query ditampilkan di bidang NOTICE pada klien. Parameter ini berlaku untuk HoloWeb dan klien PostgreSQL. Jika Anda menggunakan driver Java Database Connectivity (JDBC), Anda harus menggunakan statement.getWarnings() untuk menanyakan bidang NOTICE dan mendapatkan ID query dari bidang NOTICE.

Nilai default: off.

set hg_experimental_display_query_id =on;

Kueri nilai parameter GUC

Anda dapat mengeksekusi pernyataan SHOW untuk memeriksa pengaturan atau nilai default parameter GUC. Contoh pernyataan:

  • Periksa apakah fitur auto-analyze diaktifkan:

    show hg_enable_start_auto_analyze_worker;
  • Kueri jumlah maksimum partisi yang dapat dijangkau oleh setiap query tabel MaxCompute:

    show hg_foreign_table_max_partition_limit;

Konfigurasi parameter GUC

Anda dapat mengonfigurasi parameter GUC di tingkat sesi atau tingkat database.

Catatan

Konfigurasikan parameter GUC untuk database atau sesi sesuai dengan skenario bisnis dan karakteristik parameter. Kami merekomendasikan agar Anda tidak mengonfigurasi semua parameter GUC di tingkat database.

  • Konfigurasi Parameter GUC di Tingkat Sesi

    Gunakan pernyataan SET untuk mengonfigurasi parameter GUC di tingkat sesi. Jika dikonfigurasi di tingkat sesi, parameter hanya berlaku dalam sesi saat ini. Setelah koneksi ditutup, pengaturan parameter menjadi tidak valid. Kami merekomendasikan penggunaan parameter GUC diikuti dengan pernyataan SQL.

    • Sintaks:

      set <GUC_name> = <values>;

      Parameter GUC_name menentukan nama parameter GUC, dan parameter values menentukan nilai parameter GUC tersebut.

    • Contoh:

      -- Aktifkan fitur auto-analyze.
      set hg_enable_start_auto_analyze_worker = on;
      
      -- Ubah jumlah maksimum partisi yang dapat dijangkau oleh setiap query tabel MaxCompute menjadi 1024.
      set hg_foreign_table_max_partition_limit =1024;
  • Konfigurasi Parameter GUC di Tingkat Database

    Gunakan pernyataan alter database xx set xxx untuk mengonfigurasi parameter GUC di tingkat database. Pengaturan parameter akan berlaku untuk database yang ditentukan setelah Anda menutup koneksi saat ini dan membuat koneksi baru. Jika Anda membuat database baru, konfigurasikan parameter GUC secara manual untuk database tersebut.

    • Sintaks:

      alter database <db_name> set <GUC_name> = <values>;

      Parameter db_name menentukan nama database. Parameter GUC_name menentukan nama parameter GUC, dan parameter values menentukan nilai parameter GUC.

    • Contoh:

      -- Aktifkan fitur auto-analyze untuk sebuah database.
      alter database testdb set hg_enable_start_auto_analyze_worker = on;
      
      -- Ubah jumlah maksimum partisi yang dapat dijangkau oleh setiap query tabel MaxCompute menjadi 1.024 untuk sebuah database.
      alter database testdb set hg_foreign_table_max_partition_limit =1024;