すべてのプロダクト
Search
ドキュメントセンター

Hologres:GUC パラメーター

最終更新日:Mar 07, 2025

幅広いシナリオをサポートするために、Hologres は Grand Unified Configuration(GUC)パラメーターを提供しています。このトピックでは、Hologres が提供する GUC パラメーターと、GUC パラメーターの使用方法について説明します。

制限事項

GUC パラメーターはシステムテーブルでは無効です。

GUC パラメーター

GUC パラメーター

説明

備考

hg_enable_start_auto_analyze_worker

これらのパラメーターは、自動分析機能を有効にするかどうかを指定し、自動分析機能を設定するために使用されます。詳細については、「ANALYZE と自動分析」をご参照ください。

Hologres V1.1 以降では、デフォルト値は on です。

set hg_enable_start_auto_analyze_worker = on;

hg_auto_check_table_changes_interval

デフォルト値: 10min

set hg_auto_check_table_changes_interval = '10min';

hg_auto_check_foreign_table_changes_interval

デフォルト値: 4h

set hg_auto_check_foreign_table_changes_interval = '4h';

hg_auto_analyze_max_sample_row_count

デフォルト値: 16777216

set hg_auto_analyze_max_sample_row_count = 16777216;

hg_fixed_api_modify_max_delay_interval

デフォルト値: 3day

set hg_fixed_api_modify_max_delay_interval = '3day';

hg_foreign_table_max_partition_limit

このパラメーターは、MaxCompute テーブルの各クエリでヒットできるパーティションの最大数を指定します。このパラメーターを使用して制限を調整できます。

  • Hologres V3.0.7 より前のバージョン:

    • デフォルト値: 512

    • 有効値: 0-1024

  • Hologres V3.0.7 以降:

    • デフォルト値: 0(制限なし)。

    • 有効値: 0-1024

set hg_foreign_table_max_partition_limit = 128;

hg_experimental_query_batch_size

これらのパラメーターは、Hologres での MaxCompute テーブルのクエリのパフォーマンスを最適化するために使用されます。詳細については、「Hologres での MaxCompute テーブルのクエリのパフォーマンスを最適化する」をご参照ください。

デフォルト値: 8192

set hg_experimental_query_batch_size = 4096;

hg_foreign_table_split_size

デフォルト値: 64。このパラメーターを過度に大きな値に設定しないことをお勧めします。

set hg_foreign_table_split_size = 128;

hg_foreign_table_executor_max_dop

このパラメーターのデフォルト値は、Hologres インスタンスの CPU コア数と同じです。最大値は 128 です。

set hg_foreign_table_executor_max_dop = 32;

hg_foreign_table_executor_dml_max_dop

デフォルト値: 32

set hg_foreign_table_executor_dml_max_dop = 16;

hg_enable_access_odps_orc_via_holo

Hologres V1.1 以降では、デフォルト値は on です。

set hg_enable_access_odps_orc_via_holo = on;

hg_experimental_enable_result_cache

このパラメーターは、結果のキャッシュを有効にするかどうかを指定します。

デフォルト値: on。結果のキャッシュ機能を無効にしないことをお勧めします。

set hg_experimental_enable_result_cache = on;

optimizer_join_order

これらのパラメーターは、内部テーブルのクエリのパフォーマンスを最適化するために使用されます。詳細については、「クエリのパフォーマンスを最適化する」をご参照ください。

デフォルト値: exhaustive。このパラメーターは、SQL クエリ文の後に使用できます。

set optimizer_join_order = query;

optimizer_force_multistage_agg

デフォルト値: off。ビジネス要件に基づいて、このパラメーターを on に設定できます。

set optimizer_force_multistage_agg = on;

hg_anon_enable

このパラメーターは、データマスキング機能を有効にするかどうかを指定します。詳細については、「データをマスキングする」をご参照ください。

デフォルト値: off。ビジネス要件に基づいて、データベースレベルでデータマスキング機能を有効にすることをお勧めします。

alter database <db_name> set hg_anon_enable = on;

hg_experimental_encryption_options

このパラメーターは、データの暗号化を有効にするかどうかを指定し、データの暗号化機能を設定するために使用されます。詳細については、「Hologres でデータを暗号化する」をご参照ください。

デフォルト値: off。ビジネス要件に基づいて、データベースレベルでデータ暗号化機能を有効にすることをお勧めします。

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

statement_timeout

このパラメーターは、アクティブなクエリのタイムアウト期間を指定します。詳細については、「クエリを管理する」をご参照ください。

デフォルト値: 8h。ビジネス要件に基づいて、セッションレベルで時間の粒度を設定することをお勧めします。

set statement_timeout = 5000 ;

idle_in_transaction_session_timeout

このパラメーターは、アイドル状態のクエリのタイムアウト期間を指定します。詳細については、「クエリを管理する」をご参照ください。

デフォルト値: 10min。このパラメーターはデータベースレベルで設定することをお勧めします。そうしないと、トランザクションリークが発生した場合、データベースがロックされます。

alter database db_name set idle_in_transaction_session_timeout=300000;

idle_session_timeout

このパラメーターは、アイドル状態の接続が自動的に解放されるまでのタイムアウト期間を指定します。詳細については、「接続を管理する」をご参照ください。

デフォルト値: 0。これは、アイドル状態の接続が自動的に解放されないことを示します。デフォルト値を使用しないことをお勧めします。そうしないと、Hologres インスタンスへの接続数が上限に達し、接続リークが発生する可能性があります。

alter database <db_name> SET idle_session_timeout = 600000;

hg_experimental_functions_use_pg_implementation

このパラメーターは、Hologres でサポートされているデータ型変換関数の時間範囲を指定します。デフォルトでは、to_charto_date、および to_timestamp 関数でサポートされている時間範囲は 1925~2282 です。このパラメーターを設定して、時間範囲を 0000~9999 に拡張できます。詳細については、「データ型変換関数」をご参照ください。

Hologres V1.1.31 以降でこのパラメーターがサポートされています。データ型変換関数にこのパラメーターを設定すると、関数でサポートされる時間範囲は 0000~9999 になります。

set hg_experimental_functions_use_pg_implementation = 'to_char';

hg_experimental_approx_count_distinct_precision

このパラメーターは、APPROX_COUNT_DISTINCT 関数の誤差範囲を調整するために使用されます。詳細については、「APPROX_COUNT_DISTINCT」をご参照ください。

デフォルト値: 17。有効値: 12~20

set hg_experimental_approx_count_distinct_precision = 20;

timezone

このパラメーターは、タイムゾーンを指定します。

デフォルト値: GMT-8:00

set timezone='GMT-8:00';

hg_experimental_enable_create_table_like_properties

このパラメーターは、テーブルスキーマと、プライマリキーやインデックスなどのテーブルプロパティの両方をコピーするかどうかを指定します。詳細については、「CREATE TABLE LIKE」をご参照ください。

デフォルト値: off

set hg_experimental_enable_create_table_like_properties=true;

hg_experimental_affect_row_multiple_times_keep_first

これらのパラメーターは、既存のデータと同じプライマリキー値を持つ行を挿入する場合の INSERT ON CONFLICT 文の競合処理ポリシーを指定します。詳細については、「INSERT ON CONFLICT(UPSERT)」をご参照ください。

デフォルト値: 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

このパラメーターは、シャードレベルのレプリケーションを有効にするかどうかを指定します。詳細については、「Hologres インスタンスのシャードレベルレプリケーション」をご参照ください。

デフォルト値: on

set hg_experimental_enable_read_replica = on;

hg_experimental_display_query_id

このパラメーターは、クライアントの NOTICE フィールドにクエリ ID を表示するかどうかを指定します。このパラメーターは、HoloWeb および PostgreSQL クライアントで有効です。Java Database Connectivity(JDBC)ドライバーを使用する場合は、statement.getWarnings() を使用して NOTICE フィールドをクエリし、NOTICE フィールドからクエリ ID を取得する必要があります。

デフォルト値: off

set hg_experimental_display_query_id =on;

GUC パラメーターの値のクエリ

SHOW 文を実行して、GUC パラメーターの設定値またはデフォルト値をクエリできます。文の例:

  • 自動分析機能が有効になっているかどうかを確認します。

    show hg_enable_start_auto_analyze_worker;
  • MaxCompute テーブルの各クエリでヒットできるパーティションの最大数をクエリします。

    show hg_foreign_table_max_partition_limit;

GUC パラメーターの設定

GUC パラメーターは、セッションレベルまたはデータベースレベルで設定できます。

説明

ビジネスシナリオとパラメーターの特性に基づいて、データベースまたはセッションの GUC パラメーターを設定する必要があります。すべての GUC パラメーターをデータベースレベルで設定しないことをお勧めします。

  • セッションレベルでの GUC パラメーターの設定

    SET 文を使用して、セッションレベルで GUC パラメーターを設定できます。セッションレベルで GUC パラメーターを設定した場合、パラメーターは現在のセッションでのみ有効になります。接続が閉じられると、パラメーター設定は無効になります。GUC パラメーターの後に SQL 文を使用することをお勧めします。

    • 構文:

      set <GUC_name> = <values>;

      GUC_name パラメーターは GUC パラメーターの名前を指定し、values パラメーターはこの GUC パラメーターの値を指定します。

    • 例:

      -- 自動分析機能を有効にします。
      set hg_enable_start_auto_analyze_worker = on;
      
      -- MaxCompute テーブルの各クエリでヒットできるパーティションの最大数を 1024 に変更します。
      set hg_foreign_table_max_partition_limit =1024;
  • データベースレベルでの GUC パラメーターの設定

    alter database xx set xxx 文を使用して、データベースレベルで GUC パラメーターを設定できます。現在の接続を閉じて再接続すると、パラメーター設定は指定されたデータベースで有効になります。データベースを作成する場合は、データベースの GUC パラメーターを手動で設定する必要があります。

    • 構文:

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

      db_name パラメーターはデータベースの名前を指定します。GUC_name パラメーターは GUC パラメーターの名前を指定し、values パラメーターは GUC パラメーターの値を指定します。

    • 例:

      -- データベースの自動分析機能を有効にします。
      alter database testdb set hg_enable_start_auto_analyze_worker = on;
      
      -- データベースの MaxCompute テーブルの各クエリでヒットできるパーティションの最大数を 1,024 に変更します。
      alter database testdb set hg_foreign_table_max_partition_limit =1024;