全部產品
Search
文件中心

PolarDB:計算層變數

更新時間:Jul 06, 2024

PolarDB-X是儲存計算分離架構,這裡主要羅列了常見CN變數(其中部分變數控制台可配置)。

變數名

是否重啟

預設值

範圍

備忘

PLAN_CACHE

FALSE

[TRUE|FALSE]

計畫快取的開關。

ENABLE_RECYCLEBIN

FALSE

[TRUE|FALSE]

開啟資源回收筒的開關。

SHOW_TABLES_CACHE

FALSE

[TRUE|FALSE]

是否對show tables結果做緩衝。

MERGE_CONCURRENT

FALSE

[TRUE|FALSE]

全並存執行開關,主要影響DDL和全下推簡單查詢的並存執行度。

MERGE_UNION

FALSE

[TRUE|FALSE]

預設關閉,開啟意味著物理SQL不做union最佳化,且將串列執行下推的物理SQL。

MERGE_UNION_SIZE

-1

[0-10000]

通過union合并物理SQL的數量,預設結合串連池可用串連數自適應推導。

TABLE_META_CACHE_EXPIRE_TIME

300

[0-180000]

中繼資料快取到期時間。

COLUMN_LABEL_INSENSITIVE

TRUE

[FALSE|TRUE]

返回列大小寫是否敏感。

RECORD_SQL

TRUE

[FALSE|TRUE]

審計日誌開關。

SOCKET_TIMEOUT

900000

[0~3600000]

物理SQL逾時時間。

TRANSACTION_POLICY

TSO

[XA|TSO|TSO_READONLY]

事務策略。

SHARE_READ_VIEW

FALSE

[TRUE|FALSE]

共用ReadView開關。

ENABLE_TRX_SINGLE_SHARD_OPTIMIZATION

TRUE

[TRUE|FALSE]

事務單分區最佳化開關。

GET_TSO_TIMEOUT

10

[1-1800]

擷取TSO時間戳記逾時時間。

MAX_TRX_DURATION

28800

[1-180000]

事務物理逾時時間。

TRANSACTION_ISOLATION

REPEATABLE-READ

[READ-UNCOMMITTED|READ-COMMITTED|REPEATABLE-READ|SERIALIZABLE]

交易隔離等級。

GROUP_CONCURRENT_BLOCK

TRUE

[TRUE|FALSE]

非MPP模式下分庫層級執行策略。

SEQUENTIAL_CONCURRENT_POLICY

FALSE

[TRUE|FALSE]

非MPP模式下單並發執行策略。

DML_SKIP_DUPLICATE_CHECK_FOR_PK

TRUE

[TRUE|FALSE]

DML過程中是否跳過主鍵的衝突檢查。

DML_SKIP_CRUCIAL_ERR_CHECK

FALSE

[TRUE|FALSE]

DML過程中是否允許有DML報錯的事務繼續提交。

DML_USE_RETURNING

TRUE

[TRUE|FALSE]

是否使用returning最佳化。

BROADCAST_DML

FALSE

[TRUE|FALSE]

是否允許廣播表的寫入不走分散式交易。

SEQUENCE_STEP

10000

[1-10000000]

SEQUENCE步長,預設為10萬。

MERGE_DDL_TIMEOUT

0

[1-10000000]

DDL物理連線逾時時間,預設是0,不逾時。

MERGE_DDL_CONCURRENT

FALSE

[FALSE|TRUE]

DDL是否採用全並行模式, 預設庫級並發。

SLOW_SQL_TIME

1000

[1-180000]

慢SQL閾值。

LOAD_DATA_BATCH_INSERT_SIZE

1024

[1-180000]

LOAD DATA每次batch insert的記錄條數。

LOAD_DATA_CACHE_BUFFER_SIZE

60

[1-180000]

LOAD DATA緩衝大小,預設60 MB。主要用途為流控。

MAX_ALLOWED_PACKET

16777216

[4194304-33554432]

最大包大小。

KILL_CLOSE_STREAM

FALSE

[FALSE|TRUE]

是否開啟物理串連流式早停功能。

ALLOW_SIMPLE_SEQUENCE

FALSE

[FALSE|TRUE]

是否允許使用simple sequence。

MAX_PARAMETERIZED_SQL_LOG_LENGTH

5000

[1-1000000]

參與參數化SQL日誌列印的最大長度。

FORBID_EXECUTE_DML_ALL

TRUE

[TRUE|FALSE]

是否禁止全表刪除/更新。

GROUP_SEQ_CHECK_INTERVAL

60

[1-36000]

檢查插入顯式值的周期/間隔,單位秒。

JOIN_BLOCK_SIZE

300

[1-100000]

在非動態裁剪下BKAJOIN執行時的IN Values個數。

LOOKUP_JOIN_MAX_BATCH_SIZE

6400

[1-100000]

BKAJOIN執行時的最大IN Values個數。

LOOKUP_JOIN_MIN_BATCH_SIZE

100

[1-100000]

BKAJOIN執行時的最小IN Values個數。

PURGE_TRANS_INTERVAL

300

[1-180000]

交易記錄清理間隔。

PURGE_TRANS_BEFORE

1800

[1-180000]

清理多久之前的交易記錄。

ENABLE_BACKGROUND_STATISTIC_COLLECTION

TRUE

[TRUE|FALSE]

是否允許統計資料擷取。

GENERAL_DYNAMIC_SPEED_LIMITATION

-1

[-1-10000000]

資料回填、校正動態限速,-1為預設限制,表示1w行每秒。

PARALLELISM

-1

[1-1024]

單機並行的並行度,預設是由規格推匯出來。

LOGICAL_DB_TIME_ZONE

SYSTEM

[SYSTEM|±HH:mm]

資料庫時區。

MPP_PARALLELISM

-1

[1-1024]

MPP執行模式的並發度,預設是由規格推匯出來。

DATABASE_PARALLELISM

0

[0-1024]

單個查詢在一個DN上允許同時下發SQL的數量,使用者計算Scan的並發度。

POLARDBX_PARALLELISM

0

[0-1024]

單個查詢在一個CN允許的最大並發度, 預設是CPU核心數。

MPP_METRIC_LEVEL

3

[0|1|2|3]

計算過程中統計資訊收集程度,層級越高說明收集粒度越細。

ENABLE_COMPLEX_DML_CROSS_DB

TRUE

[TRUE|FALSE]

是否支援跨庫複雜DML。

PER_QUERY_MEMORY_LIMIT

-1

[-1-9223372036854775807]

查詢級記憶體池大小限制,預設是全域串連池的三分之一。

ENABLE_SPILL

FALSE

[FALSE|TRUE]

暫存資料表落盤的開關。

CONN_POOL_MIN_POOL_SIZE

20

[0-60]

物理分庫連結數最小值。

CONN_POOL_MAX_POOL_SIZE

60

[1-1600]

物理分庫連結數最大值。

CONN_POOL_MAX_WAIT_THREAD_COUNT

0

[-1-8192]

單分庫最大等待建連數(DRUID)。

CONN_POOL_IDLE_TIMEOUT

30

[1-60]

物理空閑連結逾時時間。

CONN_POOL_BLOCK_TIMEOUT

5000

[1000-60000]

物理串連池擷取串連的最大等待時間。

CONN_POOL_XPROTO_MAX_POOLED_SESSION_PER_INST

512

[1-8192]

單個儲存節點最大緩衝會話數(私人協議)。

XPROTO_MAX_DN_CONCURRENT

500

[1-8192]

單個儲存節點最大並發請求數(私人協議)。

XPROTO_MAX_DN_WAIT_CONNECTION

32

[1-8192]

單個儲存節點最大請求等待數(私人協議)

MERGE_SORT_BUFFER_SIZE

2048

[1024-81920]

TableScan層做歸併排序使用的緩衝大小,預設2 MB。

WORKLOAD_TYPE

[AP|TP]

是否指定查詢的workload,預設基於代價智能識別負載。

EXECUTOR_MODE

[MPP|TP_LOCAL|AP_LOCAL]

是否指定查詢的執行模式,預設基於workload選擇執行模式。

ENABLE_MASTER_MPP

FALSE

[TRUE|FALSE]

是否在主執行個體上開啟MPP能力。

LOOKUP_JOIN_BLOCK_SIZE_PER_SHARD

50

[1-100000]

在裁剪下BKAJOIN執行時的單分區約定的IN Values個數。

ENABLE_RUNTIME_FILTER

TRUE

[TRUE|FALSE]

Runtime Filter的開關。

FEEDBACK_WORKLOAD_AP_THRESHOLD

FALSE

[TRUE|FALSE]

針對AP查詢的HTAP FEEDBACK開關。

FEEDBACK_WORKLOAD_TP_THRESHOLD

FALSE

[TRUE|FALSE]

針對TP查詢的HTAP FEEDBACK開關。

MASTER_READ_WEIGHT

-1

[0-100]

查詢流量按照(100-MASTER_READ_WEIGHT)設定比例路由給唯讀DN。

SHOW_ALL_PARAMS

FALSE

[TRUE|FALSE]

是否顯示SHOW全部變數。

FORCE_READ_OUTSIDE_TX

FALSE

[TRUE|FALSE]

事務內是否在一個分庫上強制開啟多個串連。

ENABLE_COROUTINE

FALSE

[TRUE|FALSE]

是否開啟wisp協程。

TRUNCATE_TABLE_WITH_GSI

FALSE

[TRUE|FALSE]

是否允許truncate包含GSI的表。

DDL_ON_GSI

FALSE

[TRUE|FALSE]

是否允許直接在GSI表做DDL。

DML_ON_GSI

FALSE

[TRUE|FALSE]

是否允許直接在GSI表做DML。

ENABLE_HASH_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否與允許HashJoin節點的產生。

ENABLE_BKA_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許BKAJoin節點產生。

ENABLE_NL_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許NLJoin節點產生。

ENABLE_SEMI_NL_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將SemiJoin轉成NLJoin來實現。

ENABLE_SEMI_HASH_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將SemiJoin轉成HashJoin來實現。

ENABLE_SEMI_BKA_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將SemiJoin轉成BKAJoin來實現。

ENABLE_SEMI_SORT_MERGE_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將SemiJoin轉成MergeJoin來實現。

ENABLE_MATERIALIZED_SEMI_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將SemiJoin轉成MaterializedJoin來實現。

ENABLE_SEMI_JOIN_REORDER

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將SemiJoin參與CBO Reorder最佳化。

ENABLE_HASH_AGG

TRUE

[TRUE|FALSE]

查詢計劃過程中是否允許產生HashAgg節點。

ENABLE_PARTIAL_AGG

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許將Agg拆分成二階段來實現。

ENABLE_SORT_AGG

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許產生SortAgg節點產生。

ENABLE_PUSH_PROJECT

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Project PushDown。

ENABLE_PUSH_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Join PushDown。

ENABLE_PUSH_AGG

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Agg PushDown。

ENABLE_CBO_PUSH_AGG

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Agg透傳Join。

ENABLE_PUSH_SORT

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Sort PushDown。

ENABLE_STATISTIC_FEEDBACK

TRUE

[TRUE|FALSE]

是否支援統計資訊修正的Feedback。

ENABLE_CBO_PUSH_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Join透傳最佳化。

ENABLE_SORT_JOIN_TRANSPOSE

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否允許Sort透傳Join。

CHUNK_SIZE

1024

[1-10240]

設定執行器每次計算的批次大小。

ENABLE_SORT_MERGE_JOIN

TRUE

[TRUE|FALSE]

最佳化查詢計劃過程中是否禁止MergeJoin節點產生。

ENABLE_BKA_PRUNING

TRUE

[TRUE|FALSE]

是否開啟BKAJoin的裁剪功能。

ENABLE_SPM

TRUE

[TRUE|FALSE]

是否開啟執行計畫管理。

ENABLE_EXPRESSION_VECTORIZATION

TRUE

[TRUE|FALSE]

是否開啟運算式的向量化計算。

FORCE_DDL_ON_LEGACY_ENGINE

TRUE

[TRUE|FALSE]

是否啟用新DDL引擎。

PURE_ASYNC_DDL_MODE

FALSE

[TRUE|FALSE]

是否以非阻塞的形式執行DDL任務,開啟意味著用戶端執行DDL後立即返回,通過show [full] ddl查看執行的情況。

DDL_JOB_REQUEST_TIMEOUT

90000

[1-9223372036854775807]

設定DDL執行的最大逾時時間,預設是25天。

LOGICAL_DDL_PARALLELISM

1

[1-10240]

配置邏輯DDL執行的並發度,設定為1意味著是串列執行DDL任務。

ENABLE_BROADCAST_RANDOM_READ

TRUE

[TRUE|FALSE]

是否開啟廣播表隨機讀取最佳化。

STORAGE_DELAY_THRESHOLD

16777216s

[0-16777216]

查詢過程中CN感知DN的延遲程度。如果延遲超過設定閾值,則路由給唯讀DN的唯讀流量會根據DELAY_EXECUTION_STRATEGY參數的設定策略執行。

DELAY_EXECUTION_STRATEGY

CONTINUE_TO_SLAVE

[CONTINUE_TO_SLAVE | CHANGE_TO_MASTER | THROW_EXCEPTION]

當出現唯讀DN延遲超過閾值情況時,可設定如下三個取值:

  • CONTINUE_TO_SLAVE:路由給唯讀DN的唯讀流量可繼續路由給該延遲超過閾值的唯讀DN;

  • CHANGE_TO_MASTER:唯讀流量會優先路由到延遲正常的唯讀DN,若所有隻讀DN延遲都超過閾值,則將流量路由到主執行個體的DN;

  • THROW_EXCEPTION:若所有隻讀DN延遲都超過閾值,路由給唯讀DN的查詢會直接報錯。

STORAGE_BUSY_THRESHOLD

100

[0-16777216]

當有多個唯讀DN時,如果某個唯讀DN上的活躍線程數超過設定閾值,則認為當前DN處於繁忙狀態,唯讀流量路由時會避開該唯讀DN。如果所有的唯讀DN都處於繁忙狀態,那麼唯讀流量會隨機路由給一個唯讀DN。

ENABLE_CONSISTENT_REPLICA_READ

TRUE

[TRUE|FALSE]

一致性讀需求的開關項。

TRUE:路由給唯讀DN的流量可以滿足一致性讀的需求,讀到已提交最新鮮的資料。

FALSE:路由給唯讀DN的流量讀取資料的新鮮程度依賴於主備之間的同步延遲。

SUPPORT_INSTANT_ADD_COLUMN

OFF

[ON|OFF]

秒級加欄位(Instant Add Column)功能的開關,通過SET GLOBAL語句開啟。

ENABLE_STATEMENTS_SUMMARY

true

[true|false]

SQL彙總開關。

STATEMENTS_SUMMARY_PERCENT

1

[0-100]

SQL彙總百分比。