全部產品
Search
文件中心

AnalyticDB:Config和Hint配置參數

更新時間:Jul 06, 2024

AnalyticDB for MySQL支援通過SET ADB_CONFIG命令和Hint兩種方式配置參數。其中,SET ADB_CONFIG命令用於修改全域配置,修改後,該配置項會作用於整個叢集;使用Hint修改參數後,該Hint僅作用於指定SQL,不影響全域配置。若同時使用SET ADB_CONFIG命令和Hint配置了參數,則優先採用Hint方式配置的參數。本文為您介紹雲原生資料倉儲AnalyticDB MySQL版中常見的配置參數。

常用Config參數

類別

參數

描述

樣本

文檔連結

新舊叢集的切換時間

REPLICATION_SWITCH_TIME_RANGE

新舊叢集切換期間,舊叢集會有5~10分鐘的時間僅支援唯讀操作。您可以在串連舊叢集後,配置REPLICATION_SWITCH_TIME_RANGE來指定切換新舊叢集的時間視窗。

說明

如果不配置新舊叢集切換的時間視窗,舊叢集中的增量資料全部即時同步到新叢集後,新舊叢集會自動切換。

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

數倉版擴縮容

IN條件數限制

MAX_IN_ITEMS_COUNT

設定IN條件的個數限制,預設值:4000。取值範圍為大於0的正整數。

SET ADB_CONFIG MAX_IN_ITEMS_COUNT=4000;

寫入與查詢

查詢逾時時間

QUERY_TIMEOUT

叢集層級為所有查詢配置查詢的逾時時間。取值範圍為大於0的整數。單位:毫秒(ms)。

SET ADB_CONFIG QUERY_TIMEOUT=1000;

INSERT、UPDATE、DELETE逾時時間

INSERT_SELECT_TIMEOUT

叢集層級修改INSERT、UPDATE和DELETE語句的最大執行時間。預設值:24*3600000,取值範圍為大於0的整數。單位:毫秒(ms)。

SET ADB_CONFIG INSERT_SELECT_TIMEOUT=3600000;

使用限制

過濾條件不下推

  • 核心版本為3.1.4及以上:FILTER_NOT_PUSHDOWN_COLUMNS

  • 核心版本為3.1.4以下:NO_INDEX_COLUMNS

叢集層級關閉特定欄位的過濾條件下推能力。

  • 核心版本為3.1.4及以上:SET ADB_CONFIG FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.tableName1:colName1|colName2;Schema2.tableName2:colName1|colName2]

  • 核心版本為3.1.4以下:SET ADB_CONFIG NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1]

過濾條件不下推

查詢執行模式

QUERY_TYPE

切換執行個體的查詢執行模式,取值:

  • interactive

  • batch

說明

數倉版預留模式叢集、企業版及湖倉版叢集不支援切換執行個體的查詢執行模式。

SET ADB_CONFIG QUERY_TYPE=interactive;

查詢執行模式

查詢隊列

XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE

單個前端節點LOWEST隊列的最大可執行查詢數,預設值為20。

SET ADB_CONFIG XIHE_ENV_QUERY_ETL_MAX_CONCURRENT_SIZE=20;

Interactive型資源群組的優先順序隊列與並發控制

XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE

單個前端節點LOWEST隊列的最大可排隊查詢數,預設值為200。

SET ADB_CONFIG XIHE_ENV_QUERY_ETL_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE

單個前端節點LOW隊列的最大可執行查詢數,預設值為20。

SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_CONCURRENT_SIZE=20;

XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE

單個前端節點LOW隊列的最大可排隊查詢數,預設值為200。

SET ADB_CONFIG XIHE_ENV_QUERY_LOW_PRIORITY_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE

單個前端節點NORMAL隊列的最大可執行查詢數,預設值為20。

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_CONCURRENT_SIZE=20;

XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE

單個前端節點NORMAL隊列的最大可排隊查詢數,預設值為200。

SET ADB_CONFIG XIHE_ENV_QUERY_NORMAL_MAX_QUEUED_SIZE=200;

XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE

單個前端節點HIGH隊列的最大可執行查詢數,預設值為40。

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_CONCURRENT_SIZE=40;

XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE

單個前端節點HIGH隊列的最大可排隊查詢數,預設值為400。

SET ADB_CONFIG XIHE_ENV_QUERY_HIGH_MAX_QUEUED_SIZE=400;

OSS外表匯入

HIVE_SPLIT_ASYNC_GENERATION_ENABLED

Hive產生執行計畫時,是否將Hive Split任務非同步提交到隊列中執行。取值:

  • true:是。

  • false(預設值):否。

說明

僅3.1.10.1及以上版本支援該參數。

SET ADB_CONFIG HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true;

MaxCompute外表匯入

SQL_OUTPUT_BATCH_SIZE

大量匯入資料時的資料條數。取值範圍為大於0的整數。

SET ADB_CONFIG SQL_OUTPUT_BATCH_SIZE = 6000;

匯入與匯出

ENABLE_ODPS_MULTI_PARTITION_PART_MATCH

是否預先遍曆擷取每個MaxCompute分區的記錄數。

SET ADB_CONFIG ENABLE_ODPS_MULTI_PARTITION_PART_MATCH=false;

ASYNC_GET_SPLIT

MaxCompute產生執行計畫時,是否通過最佳化Split載入效能,將任務非同步提交到隊列中執行。取值:

  • true:是。

  • false(預設值):否。

說明

僅3.1.10.1及以上版本支援該參數。

SET ADB_CONFIG ASYNC_GET_SPLIT=true;

BUILD自動調度時間

RC_CSTORE_BUILD_SCHEDULE_PERIOD

限制BUILD任務調度時間段,不限任務執行時間段。取值為0~24之間的整數。

SET ADB_CONFIG RC_CSTORE_BUILD_SCHEDULE_PERIOD=`6,8`;

配置BUILD自動調度時間

BUILD調度優先順序

ADB_CONFIG RC_BUILD_TASK_PRIORITY_LIST

支援對單表或多表配置BUILD調度的優先順序,且優先順序一直生效,直至再次配置該表優先順序時,才會改變。

BUILD調度的優先順序由參數task_priority控制,取值為整數,預設值為0。

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

BUILD

彈性匯入

RC_ELASTIC_JOB_SCHEDULER_ENABLE

彈性匯入資料時需手動開啟彈性匯入開關。

SET ADB_CONFIG RC_ELASTIC_JOB_SCHEDULER_ENABLE=true;

REMOTE_CALL函數

XIHE_REMOTE_CALL_SERVER_ENDPOINT

通過REMOTE_CALL函數遠程調用Function Compute服務中自訂的函數時,Function Compute服務的內網服務接入地址。詳細資料,請參見服務接入地址

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_ENDPOINT="1234567890000****.cn-zhangjiakou-internal.fc.aliyuncs.com"

自訂函數

XIHE_REMOTE_CALL_SERVER_AK

通過REMOTE_CALL函數遠程調用Function Compute服務中自訂的函數時,Function Compute服務所屬阿里雲帳號或者RAM使用者的AccessKey ID。

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_AK=LTAI5t8sqJn5GhpBVtN8****;

XIHE_REMOTE_CALL_SERVER_SK

通過REMOTE_CALL函數遠程調用Function Compute服務中自訂的函數時,Function Compute服務所屬阿里雲帳號或者RAM使用者的AccessKey Secret。

SET ADB_CONFIG XIHE_REMOTE_CALL_SERVER_SK=HlClegbiV5mJjBYBJHEZQOnRF7****;

XIHE_REMOTE_CALL_COMPRESS_ENABLED

通過REMOTE_CALL函數遠程調用Function Compute服務中自訂的函數時,是否使用GZIP格式壓縮資料再傳輸至Function Compute服務。

SET ADB_CONFIG REMOTE_CALL_COMPRESS_ENABLED=true;

XIHE_REMOTE_CALL_MAX_BATCH_SIZE

通過REMOTE_CALL函數遠程調用Function Compute服務中自訂的函數時,向Function Compute服務發送的資料行數。

SET ADB_CONFIG XIHE_REMOTE_CALL_MAX_BATCH_SIZE=500000;

掃描並發控制

ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED

AnalyticDB for MySQL支援配置掃描並發額度,避免因查詢的掃描並發過大、佔用過多資源,導致節點不穩定的情況。取值如下:

  • true(預設值):開啟掃描並發控制功能。

  • false:關閉掃描並發控制功能。

SET ADB_CONFIG SPLIT_FLOW_CONTROL_ENABLED=true;

掃描並發控制

ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED

AnalyticDB for MySQL支援根據節點整體的掃描並發額度,動態調整Task的掃描並發額度。取值如下:

  • true:開啟動態調整Task掃描並發控制功能。

  • false(預設值):關閉動態調整Task掃描並發控制功能。

SET ADB_CONFIG NODE_LEVEL_SPLIT_FLOW_CONTROL_ENABLED=true;

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Task掃描並發額度的最小值。預設值為1,取值範圍為[1,TARGET_RUNNING_SPLITS_LIMIT_PER_TASK]。

SET ADB_CONFIG MIN_RUNNING_SPLITS_LIMIT_PER_TASK=24;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Task掃描並發額度的中間值,基於該值增加或降低掃描並發額度。預設值為32,取值範圍為[MIN_RUNNING_SPLITS_LIMIT_PER_TASK,MAX_RUNNING_SPLITS_LIMIT_PER_TASK]。

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Task掃描並發額度的最大值。預設值為64,取值範圍大於TARGET_RUNNING_SPLITS_LIMIT_PER_TASK值。

SET ADB_CONFIG MAX_RUNNING_SPLITS_LIMIT_PER_TASK=128;

ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

儲存節點的掃描並發額度預設為256,掃描並發額度過大或過小都會影響叢集效能,建議您不要修改預設值。

SET ADB_CONFIG WORKER_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE

計算節點的掃描並發額度預設為256,掃描並發額度過大或過小都會影響叢集效能,建議您不要修改預設值。

SET ADB_CONFIG EXECUTOR_MAX_RUNNING_SOURCE_SPLITS_PER_NODE=256;

常用Hint

類別

參數

描述

樣本

文檔連結

查詢逾時時間

QUERY_TIMEOUT

查詢層級為單次查詢配置查詢的逾時時間。取值範圍為大於0的整數,單位:毫秒(ms)。

/*+ QUERY_TIMEOUT=1000 */select count(*) from t;

寫入與查詢

INSERT、UPDATE、DELETE逾時時間

INSERT_SELECT_TIMEOUT

查詢層級修改INSERT、UPDATE和DELETE語句的最大執行時間。預設值:24*3600000,取值範圍為大於0的整數,單位:毫秒(ms)。

/*+ INSERT_SELECT_TIMEOUT=3600000 */update customer set customer_name ='adb' where customer_id ='2369';

使用限制

過濾條件不下推

  • 核心版本為3.1.4及以上:FILTER_NOT_PUSHDOWN_COLUMNS

  • 核心版本為3.1.4以下:NO_INDEX_COLUMNS

查詢層級關閉特定欄位的過濾條件下推能力。

  • 核心版本為3.1.4及以上:/*+ FILTER_NOT_PUSHDOWN_COLUMNS=[Schema1.table1:colName1|colName2;Schema2.table2:colName1|colName2] */

  • 核心版本為3.1.4以下:/*+ NO_INDEX_COLUMNS=[tableName1.colName1;colName2,tableName2.colName1] */

過濾條件不下推

BUILD調度優先順序

build_task_priority

修改BUILD任務調度的優先順序。目前只支援使用Hint對單表配置BUILD調度的優先順序。預設值為0,取值範圍為大於或等於0的整數,數值越大,BUILD任務調度的優先順序越高。

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

配置BUILD調度優先順序

彈性匯入

  • elastic_load

  • elastic_load_configs

選擇彈性匯入並配置執行彈性匯入任務的Job型資源群組。

/*+ 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;

調整執⾏計劃

  • 核心版本3.1.8及以上O_CBO_RULE_SWAP_OUTER_JOIN

  • 核心版本3.1.8及以下LEFT_TO_RIGHT_ENABLED

Hash Join的實現會以右表做BUILD,且Left Join不會做左右表的重新排序,在右表資料量很大時會造成執行慢、消耗過多記憶體資源等多個問題。您可以通過添加Hint指定最佳化器根據資源損耗把Left Join轉為Right Join。取值:

  • true:開啟。

  • false(預設值):關閉。

  • /*+ O_CBO_RULE_SWAP_OUTER_JOIN=true*/

  • /*+ LEFT_TO_RIGHT_ENABLED=true*/

Left join最佳化改寫為Right join

reorder_joins

AnalyticDB MySQL預設開啟自動調整Join順序的功能,您可以根據查詢的資料特徵手動調整Join順序,讓查詢直接根據SQL書寫方式中的Join順序來執行。取值:

  • true(預設值):開啟自動調整Join順序功能。

  • false:關閉自動調整Join順序功能。

/*+ REORDER_JOINS=false*/

手動調整Join順序

aggregation_path_type

如果使用兩步彙總方式,在分組彙總的分組數較多時,會消耗很多計算資源。您可以使用該Hint語句跳過局部彙總,直接進行最終彙總。取值:

  • single_agg:跳過局部彙總。

  • auto(預設值):最佳化器自動判斷是否跳過局部彙總。

/*+ AGGREGATION_PATH_TYPE=single_agg*/

分組彙總查詢最佳化

調整運⾏時策略

hash_partition_count

每個計算任務都會被切分成多個Task並發執行,充分利用計算資源。您可使用該Hint設定並發度。預設值為32,取值範圍為大於0的整數。

/*+ HASH_PARTITION_COUNT=32*/

task_writer_count

INSERT INTO SELECT匯入任務的並發數,當Worker負載過高時,可修改該Hint降低並發數。預設值為16,取值範圍為大於0的整數。

/*+ TASK_WRITER_COUNT=8*/

cte_execution_mode

是否開啟CTE執行最佳化。CTE執行最佳化功能開啟後,CTE子查詢被多次引用時,只執行一次,提升部分查詢的查詢效能。取值:

  • shared:開啟CTE執行最佳化功能。

  • inline(預設值):關閉CTE執行最佳化功能。

/*+ CTE_EXECUTION_MODE=shared*/

WITH

查詢條件限制

query_max_shuffle_data_size_mb

查詢的Shuffle資料量。預設情況下,無論查詢的資料量為多少,都不會觸發報錯。若設定了該參數,查詢的資料量超過設定閾值後系統會直接終止查詢並報錯。取值範圍為大於0的整數,單位為MB。

/*+ QUERY_MAX_SHUFFLE_DATA_SIZE_MB=1024*/

max_select_items_count

設定SELECT條件的個數限制。預設值:1024,取值範圍為大於0的整數。

/*+ MAX_SELECT_ITEMS_COUNT=2048*/

max_in_items_count

設定IN條件的個數限制。預設值:4000,取值範圍為大於0的整數。

/*+ MAX_IN_ITEMS_COUNT=1000*/

max_where_items_count

設定WHERE條件的個數限制。預設值:256,取值範圍為大於0的整數。

/*+ MAX_WHERE_ITEMS_COUNT=512*/

OSS外表

output_filename

通過OSS外表匯出資料時,可以在匯出語句前添加該Hint,自訂儲存在OSS中的檔案名稱。

/*+ OUTPUT_FILENAME=output.csv*/

匯出至OSS

sql_output_oss_file_head_enable

通過OSS外表匯出資料時,匯出到OSS中的資料檔案預設不帶列名,只有資料。若您想匯出帶列名的檔案,請在匯入語句前添加該Hint。取值:

  • true:是。

  • false(預設值):否。

/*+ SQL_OUTPUT_OSS_FILE_HEAD_ENABLE=true*/

hive_split_async_generation_enabled

Hive產生執行計畫時,是否將Hive Split任務非同步提交到隊列中執行。取值:

  • true:是。

  • false(預設值):否。

說明

僅3.1.10.1及以上版本支援該參數。

/*+ HIVE_SPLIT_ASYNC_GENERATION_ENABLED=true*/

通過外表匯入至湖倉版

fast_parquet_reader_enable

當Parquet檔案中的統計資訊有誤時,

是否回退到原生的Parquet reader。

  • true(預設值):是。

  • false:否。

/*+ FAST_PARQUET_READER_ENABLE=true*/

oss_vectorized_parquet_reader_enable

在資料中沒有NULL值的情況下,是否開啟Parquet向量化讀開關。取值:

  • true:是。

  • false(預設值):否。

/*+ OSS_VECTORIZED_PARQUET_READER_ENABLE=true*/

oss_vectorized_parquet_reader_null_scene_enable

在資料中有NULL值的情況下,是否開啟Parquet向量化讀開關。取值:

  • true:是。

  • false(預設值):否。

/*+ OSS_VECTORIZED_PARQUET_READER_NULL_SCENE_ENABLE=true*/

hudi_metadata_table_enabled

是否載入Hudi的中繼資料資訊。取值:

  • true:是。

  • false(預設值):否。

/*+ HUDI_METADATA_TABLE_ENABLED=true*/

hudi_query_type

設定查詢Hudi表的方式。取值:

  • snapshot:查詢指定時間所有提交或壓縮後的資料。

  • read_optimized(預設值):查詢最後一次提交或壓縮之後的資料。

/*+ HUDI_QUERY_TYPE=snapshot*/

hudi_realtime_skip_merge

快照查詢Hudi表資料時,是否跳過基本檔案和記錄檔的記錄合并。取值:

  • true:是。

  • false(預設值):否。

/*+ HUDI_REALTIME_SKIP_MERGE=true*/

hudi_max_split_size

最大Split的大小。預設值為128。單位:MB。

/*+ HUDI_MAX_SPLIT_SIZE=128*/

hudi_split_parallel_generation_enabled

是否並行產生Split。取值:

  • true(預設值):是。

  • false:否。

/*+ HUDI_SPLIT_PARALLEL_GENERATION_ENABLED=true*/

hudi_data_skipping_enabled

在讀取資料時,使用Hudi MetaTable表中的統計資訊跳過不需要讀取的分區,提升查詢效能。取值:

  • true:是。

  • false(預設值):否。

/*+ HUDI_DATA_SKIPPING_ENABLED=true*/

hudi_split_async_generation_enabled

在產生執行計畫的階段,是否非同步產生Hudi Split。取值:

  • true(預設值):是。

  • false:否。

/*+ HUDI_SPLIT_ASYNC_GENERATION_ENABLED=true*/

RDS MySQL外表

jdbc_scan_splits

通過JDBC執行TableScan時的Split個數。預設值為1,取值範圍為1~100。

/*+ JDBC_SCAN_SPLITS=1*/

通過外表匯入至湖倉版

jdbc_split_column

讀取RDS MySQL外表時,切分Split的列。

/*+ JDBC_SPLIT_COLUMN=column1*/

jdbc_insert_directly

RDS MySQL外表寫資料時,預設先寫入暫存資料表,再寫入目標表。您可以通過修改Hint直接將資料寫入目標表,但是在寫入過程中,出現任何報錯,會導致目標表中有髒資料。取值:

  • true:是。

  • false(預設值):否。

/*+ JDBC_INSERT_DIRECTLY=true*/

Tablestore外表

ots-insert-as-update

是否使用INSERT語句代替UPDATE語句。取值:

  • true:是。

  • false(預設值):否。

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

查詢並匯入Tablestore資料

MaxCompute外表

odps_split_limit

通過Tunnel讀取資料時,最多切分Split的數量。預設值為1000,取值範圍為1~1000。

/*+ ODPS_SPLIT_LIMIT=1000*/

通過外表匯入至湖倉版

ignore_partition_cache

執行帶有分區條件的查詢時,不使用緩衝的分區中繼資料資訊,而是從MaxCompute表中直接查詢分區中繼資料。

  • true:是。

  • false(預設值):否。

/*+ IGNORE_PARTITION_CACHE=true*/

rows_per_split

通過Tunnel讀取資料時,單個Split的最大讀取的資料行數。預設值為500000,取值範圍為10000~500000。

/*+ ROWS_PER_SPLIT=500000*/

storage_api_enabled

是否使用MaxCompute Storage API讀取MaxCompute資料。MaxCompute Storage API相比傳統的Tunnel讀取效能有很大提升。

取值:

  • true:是。

  • false(預設值):否。

/*+ STORAGE_API_ENABLED=true*/

split_byte_size

通過MaxCompute Storage API讀取資料時,單個Split的最大值。預設值為256,單位:MB。

/*+ APLIT_BYTE_SIZE=256*/

max_batch_row_count

通過MaxCompute Storage API讀取資料時,單個Split的最大行數。預設值為1024。

/*+ MAX_BATCH_ROW_COUNT=1024*/

page_batch_size

通過MaxCompute Storage API讀取資料時,每個Page所包含的最大行數。預設值為1024。

/*+ PAGE_BATCH_SIZE=1024*/

max_allocation_per_split

通過MaxCompute Storage API讀取資料時,Split層級分配的最大峰值記憶體。預設值為300 MB,單位:MB。

/*+ MAX_ALLOCATION_PER_SPLIT=300*/

async_get_split

MaxCompute產生執行計畫時,是否通過最佳化Split載入效能,將任務非同步提交到隊列中執行。取值:

  • true:是。

  • false(預設值):否。

說明

僅3.1.10.1及以上版本支援該參數。

/*+ ASYNC_GET_SPLIT=true*/

掃描並發控制

SPLIT_FLOW_CONTROL_ENABLED

AnalyticDB for MySQL支援配置掃描並發額度,避免因查詢的掃描並發過大、佔用過多資源,導致節點不穩定的情況。取值如下:

  • true(預設值):開啟掃描並發控制功能。

  • false:關閉掃描並發控制功能。

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

掃描並發控制

MIN_RUNNING_SPLITS_LIMIT_PER_TASK

Task掃描並發額度的最小值。預設值為1,取值範圍為[1,TARGET_RUNNING_SPLITS_LIMIT_PER_TASK]。

/*+ MIN_RUNNING_SPLITS_LIMIT_PER_TASK=10*/SELECT * FROM orders;

TARGET_RUNNING_SPLITS_LIMIT_PER_TASK

Task掃描並發額度的中間值,基於該值增加或降低掃描並發額度。預設值為32,取值範圍為[MIN_RUNNING_SPLITS_LIMIT_PER_TASK,MAX_RUNNING_SPLITS_LIMIT_PER_TASK]。

/*+ TARGET_RUNNING_SPLITS_LIMIT_PER_TASK=32*/SELECT * FROM adb_test;

MAX_RUNNING_SPLITS_LIMIT_PER_TASK

Task掃描並發額度的最大值。預設值為64,取值範圍大於TARGET_RUNNING_SPLITS_LIMIT_PER_TASK值。

/*+ MAX_RUNNING_SPLITS_LIMIT_PER_TASK=100*/SELECT * FROM adb_test;

其他

resource_group

指定查詢所使⽤的資源群組。若不指定資源群組,預設使用資料庫帳號綁定的資源群組。資料庫帳號未綁定資源群組時,則使用預設資源群組。

/*+ RESOURCE_GROUP=my_group_name*/

dml_exception_to_null_enabled

INSERT SELECT語句寫入的資料出現非法值,是否拋出異常。取值:

  • true:不拋出異常,寫入NULL值。

  • false(預設值):拋出異常。

/*+ DML_EXCEPTION_TO_NULL_ENABLED=true*/

display_hint

⽤於標記相應的查詢,例如來自於不同的業務方,便於識別。

/*+ DISPLAY_HINT=from_user_123*/