日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

GUC參數

為了更好地支持Hologres用戶豐富的使用場景,Hologres提供一些GUC參數。本文將介紹Hologres中GUC參數的含義以及如何使用。

GUC參數一覽表

GUC名稱

適用場景

說明

使用示例

hg_enable_start_auto_analyze_worker

開啟Auto Analyze,以及Auto Analyze相關配置,詳情請參見ANALYZE和AUTO ANALYZE

HologresV1.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

默認值為3d

set hg_fixed_api_modify_max_delay_interval = '3day';

hg_foreign_table_max_partition_limit

查MaxCompute外部表分區限制。

默認值為512,支持范圍為0-1024

set hg_foreign_table_max_partition_limit = 128;

hg_experimental_query_batch_size

MaxCompute性能調優參數,詳情請參見優化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

默認值調整為與實例Core數相同,最大為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

HologresV1.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,后面可以接Query命令。

set optimizer_join_order = query;

optimizer_force_multistage_agg

默認值為off,按需開啟。

set optimizer_force_multistage_agg = on;

hg_anon_enable

數據脫敏函數,詳情請參見數據脫敏

默認值為off,建議數據庫級別按需開啟。

alter database <db_name> set hg_anon_enable = on;

hg_experimental_encryption_options

數據加密規格設置,詳情請參見數據存儲加密

默認值為off,建議數據庫級別按需開啟。

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

statement_timeout

活躍query超時時間,詳情請參見Query管理

默認值為8h,建議根據業務情況,session級別設置不同粒度的超時時間。

set statement_timeout = 5000 ;

idle_in_transaction_session_timeout

空閑事務的超時時間,詳情請參見Query管理

默認值為10min,建議數據庫級別設置,否則當事務泄漏時容易造成死鎖。

alter database db_name set idle_in_transaction_session_timeout=300000;

idle_session_timeout

自動釋放空閑連接超時時間,詳情請參見連接數管理

默認值為0,即不會自動釋放。建議設置,否則連接數太多導致超過實例默認上限,從而無法連接。

alter database <db_name> SET idle_session_timeout = 600000;

hg_experimental_functions_use_pg_implementation

時間范圍擴展。to_charto_dateto_timestamp函數在處理時間類型時默認范圍為1925-2282,通過設置GUC參數支持0000-9999年的時間,詳情請參見類型轉換函數

HologresV1.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

時區設置。

默認值為PRC(東八區)。

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

單實例多副本高可用以及相關配置,詳情請參見單實例Shard級多副本

默認值為on

set hg_experimental_enable_read_replica = on;

hg_experimental_display_query_id

通過NOTICE在客戶端打印出Query ID,通常適用于HoloWeb和PSQL客戶端,如果是JDBC,需要使用statement.getWarnings()來獲取NOTICE,從而獲得Query ID。

默認值為off

set hg_experimental_display_query_id =on;

查看當前GUC參數的狀態或默認值

通過show命令語句可以查看某個GUC參數的狀態或者默認值,使用示例如下。

  • 查看是否開啟Auto Analyze。

    show hg_enable_start_auto_analyze_worker;
  • 查看讀取MaxCompute分區限制大小。

    show hg_foreign_table_max_partition_limit;

設置GUC參數

GUC在使用時,可以設置為session級別或者數據庫級別生效。

說明

具體是session級別還是數據庫級別,需要根據業務場景以及參數的詳情合理評估,不建議所有的參數都設置為數據庫級別。

  • session級別

    通過set命令可以在session級別設置GUC參數。session級別的參數只在當前session生效,當連接斷開之后,將會失效,建議加在SQL前一起執行。

    • 語法示例如下。

      set <GUC_name> = <values>;

      GUC_name為GUC參數的名稱,values為GUC參數的值。

    • 使用示例如下。

      -- 開啟Auto Analyze
      set hg_enable_start_auto_analyze_worker = on;
      
      -- 讀取MaxCompute的分區限制變為1024
      set hg_foreign_table_max_partition_limit =1024;
  • 數據庫級別

    可以通過alter database xx set xxx命令來設置DB級別的GUC參數,執行完成后在整個DB級別生效,設置完成后當前連接需要重新斷開連接才能生效。新建DB不會生效,需要重新手動設置。

    • 語法示例如下。

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

      db_name為數據庫名稱,GUC_name為GUC參數的名稱,values為GUC參數的值。

    • 使用示例如下。

      -- DB級別開啟Auto Analyze
      alter database testdb set hg_enable_start_auto_analyze_worker = on;
      
      -- DB級別讀取MaxCompute的分區限制變為1024
      alter database testdb set hg_foreign_table_max_partition_limit =1024;