diff --git a/src/observer/virtual_table/ob_gv_sql.cpp b/src/observer/virtual_table/ob_gv_sql.cpp index de69d649a..18a80a42c 100644 --- a/src/observer/virtual_table/ob_gv_sql.cpp +++ b/src/observer/virtual_table/ob_gv_sql.cpp @@ -1145,6 +1145,14 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p cells[i].set_uint64(compile_time); break; } + case share::ALL_VIRTUAL_PLAN_STAT_CDE::PLAN_STATUS: { + cells[i].set_null(); + break; + } + case share::ALL_VIRTUAL_PLAN_STAT_CDE::ADAPTIVE_FEEDBACK_TIMES: { + cells[i].set_null(); + break; + } default: { ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, diff --git a/src/share/inner_table/ob_inner_table_schema.11001_11050.cpp b/src/share/inner_table/ob_inner_table_schema.11001_11050.cpp index 5192405a1..7e56a34a6 100644 --- a/src/share/inner_table/ob_inner_table_schema.11001_11050.cpp +++ b/src/share/inner_table/ob_inner_table_schema.11001_11050.cpp @@ -3179,6 +3179,36 @@ int ObInnerTableSchema::all_virtual_plan_stat_schema(ObTableSchema &table_schema false, //is_nullable false); //is_autoincrement } + + if (OB_SUCC(ret)) { + ADD_COLUMN_SCHEMA("plan_status", //column_name + ++column_id, //column_id + 0, //rowkey_id + 0, //index_id + 0, //part_key_pos + ObIntType, //column_type + CS_TYPE_INVALID, //column_collation_type + sizeof(int64_t), //column_length + -1, //column_precision + -1, //column_scale + false, //is_nullable + false); //is_autoincrement + } + + if (OB_SUCC(ret)) { + ADD_COLUMN_SCHEMA("adaptive_feedback_times", //column_name + ++column_id, //column_id + 0, //rowkey_id + 0, //index_id + 0, //part_key_pos + ObIntType, //column_type + CS_TYPE_INVALID, //column_collation_type + sizeof(int64_t), //column_length + -1, //column_precision + -1, //column_scale + false, //is_nullable + false); //is_autoincrement + } if (OB_SUCC(ret)) { table_schema.get_part_option().set_part_num(1); table_schema.set_part_level(PARTITION_LEVEL_ONE); diff --git a/src/share/inner_table/ob_inner_table_schema.15001_15050.cpp b/src/share/inner_table/ob_inner_table_schema.15001_15050.cpp index 9ef1f3350..4b4c0f796 100644 --- a/src/share/inner_table/ob_inner_table_schema.15001_15050.cpp +++ b/src/share/inner_table/ob_inner_table_schema.15001_15050.cpp @@ -4763,6 +4763,36 @@ int ObInnerTableSchema::all_virtual_plan_stat_ora_schema(ObTableSchema &table_sc false, //is_nullable false); //is_autoincrement } + + if (OB_SUCC(ret)) { + ADD_COLUMN_SCHEMA("PLAN_STATUS", //column_name + ++column_id, //column_id + 0, //rowkey_id + 0, //index_id + 0, //part_key_pos + ObNumberType, //column_type + CS_TYPE_INVALID, //column_collation_type + 38, //column_length + 38, //column_precision + 0, //column_scale + false, //is_nullable + false); //is_autoincrement + } + + if (OB_SUCC(ret)) { + ADD_COLUMN_SCHEMA("ADAPTIVE_FEEDBACK_TIMES", //column_name + ++column_id, //column_id + 0, //rowkey_id + 0, //index_id + 0, //part_key_pos + ObNumberType, //column_type + CS_TYPE_INVALID, //column_collation_type + 38, //column_length + 38, //column_precision + 0, //column_scale + false, //is_nullable + false); //is_autoincrement + } if (OB_SUCC(ret)) { table_schema.get_part_option().set_part_num(1); table_schema.set_part_level(PARTITION_LEVEL_ONE); diff --git a/src/share/inner_table/ob_inner_table_schema.20001_20050.cpp b/src/share/inner_table/ob_inner_table_schema.20001_20050.cpp index 437d2b241..840cc63b1 100644 --- a/src/share/inner_table/ob_inner_table_schema.20001_20050.cpp +++ b/src/share/inner_table/ob_inner_table_schema.20001_20050.cpp @@ -111,7 +111,7 @@ int ObInnerTableSchema::gv_ob_plan_cache_plan_stat_schema(ObTableSchema &table_s table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); if (OB_SUCC(ret)) { - if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID,SVR_IP,SVR_PORT,PLAN_ID,SQL_ID,TYPE,IS_BIND_SENSITIVE,IS_BIND_AWARE, DB_ID,STATEMENT,QUERY_SQL,SPECIAL_PARAMS,PARAM_INFOS, SYS_VARS, CONFIGS, PLAN_HASH, FIRST_LOAD_TIME,SCHEMA_VERSION,LAST_ACTIVE_TIME,AVG_EXE_USEC,SLOWEST_EXE_TIME,SLOWEST_EXE_USEC, SLOW_COUNT,HIT_COUNT,PLAN_SIZE,EXECUTIONS,DISK_READS,DIRECT_WRITES,BUFFER_GETS,APPLICATION_WAIT_TIME, CONCURRENCY_WAIT_TIME,USER_IO_WAIT_TIME,ROWS_PROCESSED,ELAPSED_TIME,CPU_TIME,LARGE_QUERYS, DELAYED_LARGE_QUERYS,DELAYED_PX_QUERYS,OUTLINE_VERSION,OUTLINE_ID,OUTLINE_DATA,ACS_SEL_INFO, TABLE_SCAN,EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT,OBJECT_TYPE,HINTS_INFO,HINTS_ALL_WORKED, PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT, RULE_NAME FROM oceanbase.__all_virtual_plan_stat WHERE OBJECT_STATUS = 0 AND is_in_pc=true )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID,SVR_IP,SVR_PORT,PLAN_ID,SQL_ID,TYPE,IS_BIND_SENSITIVE,IS_BIND_AWARE, DB_ID,STATEMENT,QUERY_SQL,SPECIAL_PARAMS,PARAM_INFOS, SYS_VARS, CONFIGS, PLAN_HASH, FIRST_LOAD_TIME,SCHEMA_VERSION,LAST_ACTIVE_TIME,AVG_EXE_USEC,SLOWEST_EXE_TIME,SLOWEST_EXE_USEC, SLOW_COUNT,HIT_COUNT,PLAN_SIZE,EXECUTIONS,DISK_READS,DIRECT_WRITES,BUFFER_GETS,APPLICATION_WAIT_TIME, CONCURRENCY_WAIT_TIME,USER_IO_WAIT_TIME,ROWS_PROCESSED,ELAPSED_TIME,CPU_TIME,LARGE_QUERYS, DELAYED_LARGE_QUERYS,DELAYED_PX_QUERYS,OUTLINE_VERSION,OUTLINE_ID,OUTLINE_DATA,ACS_SEL_INFO, TABLE_SCAN,EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT,OBJECT_TYPE,HINTS_INFO,HINTS_ALL_WORKED, PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT, RULE_NAME, PLAN_STATUS, ADAPTIVE_FEEDBACK_TIMES FROM oceanbase.__all_virtual_plan_stat WHERE OBJECT_STATUS = 0 AND is_in_pc=true )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.21001_21050.cpp b/src/share/inner_table/ob_inner_table_schema.21001_21050.cpp index 67209fbae..3f4bae02b 100644 --- a/src/share/inner_table/ob_inner_table_schema.21001_21050.cpp +++ b/src/share/inner_table/ob_inner_table_schema.21001_21050.cpp @@ -1233,7 +1233,7 @@ int ObInnerTableSchema::v_ob_plan_cache_plan_stat_schema(ObTableSchema &table_sc table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); if (OB_SUCC(ret)) { - if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID,SVR_IP,SVR_PORT,PLAN_ID,SQL_ID,TYPE,IS_BIND_SENSITIVE,IS_BIND_AWARE, DB_ID,STATEMENT,QUERY_SQL,SPECIAL_PARAMS,PARAM_INFOS, SYS_VARS, CONFIGS, PLAN_HASH, FIRST_LOAD_TIME,SCHEMA_VERSION,LAST_ACTIVE_TIME,AVG_EXE_USEC,SLOWEST_EXE_TIME,SLOWEST_EXE_USEC, SLOW_COUNT,HIT_COUNT,PLAN_SIZE,EXECUTIONS,DISK_READS,DIRECT_WRITES,BUFFER_GETS,APPLICATION_WAIT_TIME, CONCURRENCY_WAIT_TIME,USER_IO_WAIT_TIME,ROWS_PROCESSED,ELAPSED_TIME,CPU_TIME,LARGE_QUERYS, DELAYED_LARGE_QUERYS,DELAYED_PX_QUERYS,OUTLINE_VERSION,OUTLINE_ID,OUTLINE_DATA,ACS_SEL_INFO, TABLE_SCAN,EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT,OBJECT_TYPE,HINTS_INFO,HINTS_ALL_WORKED, PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT, RULE_NAME FROM oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID,SVR_IP,SVR_PORT,PLAN_ID,SQL_ID,TYPE,IS_BIND_SENSITIVE,IS_BIND_AWARE, DB_ID,STATEMENT,QUERY_SQL,SPECIAL_PARAMS,PARAM_INFOS, SYS_VARS, CONFIGS, PLAN_HASH, FIRST_LOAD_TIME,SCHEMA_VERSION,LAST_ACTIVE_TIME,AVG_EXE_USEC,SLOWEST_EXE_TIME,SLOWEST_EXE_USEC, SLOW_COUNT,HIT_COUNT,PLAN_SIZE,EXECUTIONS,DISK_READS,DIRECT_WRITES,BUFFER_GETS,APPLICATION_WAIT_TIME, CONCURRENCY_WAIT_TIME,USER_IO_WAIT_TIME,ROWS_PROCESSED,ELAPSED_TIME,CPU_TIME,LARGE_QUERYS, DELAYED_LARGE_QUERYS,DELAYED_PX_QUERYS,OUTLINE_VERSION,OUTLINE_ID,OUTLINE_DATA,ACS_SEL_INFO, TABLE_SCAN,EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT,OBJECT_TYPE,HINTS_INFO,HINTS_ALL_WORKED, PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT, RULE_NAME, PLAN_STATUS, ADAPTIVE_FEEDBACK_TIMES FROM oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.28001_28050.cpp b/src/share/inner_table/ob_inner_table_schema.28001_28050.cpp index 7d52c5f12..1cfea062b 100644 --- a/src/share/inner_table/ob_inner_table_schema.28001_28050.cpp +++ b/src/share/inner_table/ob_inner_table_schema.28001_28050.cpp @@ -264,7 +264,7 @@ int ObInnerTableSchema::gv_ob_plan_cache_plan_stat_ora_schema(ObTableSchema &tab table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); if (OB_SUCC(ret)) { - if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID AS TENANT_ID, SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, PLAN_ID AS PLAN_ID, SQL_ID AS SQL_ID, TYPE AS TYPE, IS_BIND_SENSITIVE AS IS_BIND_SENSITIVE, IS_BIND_AWARE AS IS_BIND_AWARE, DB_ID AS DB_ID, STATEMENT AS STATEMENT, QUERY_SQL AS QUERY_SQL, SPECIAL_PARAMS AS SPECIAL_PARAMS, PARAM_INFOS AS PARAM_INFOS, SYS_VARS AS SYS_VARS, PLAN_HASH AS PLAN_HASH, FIRST_LOAD_TIME AS FIRST_LOAD_TIME, SCHEMA_VERSION AS SCHEMA_VERSION, LAST_ACTIVE_TIME AS LAST_ACTIVE_TIME, AVG_EXE_USEC AS AVG_EXE_USEC, SLOWEST_EXE_TIME AS SLOWEST_EXE_TIME, SLOWEST_EXE_USEC AS SLOWEST_EXE_USEC, SLOW_COUNT AS SLOW_COUNT, HIT_COUNT AS HIT_COUNT, PLAN_SIZE AS PLAN_SIZE, EXECUTIONS AS EXECUTIONS, DISK_READS AS DISK_READS, DIRECT_WRITES AS DIRECT_WRITES, BUFFER_GETS AS BUFFERS_GETS, APPLICATION_WAIT_TIME AS APPLICATION_WATI_TIME, CONCURRENCY_WAIT_TIME AS CONCURRENCY_WAIT_TIME, USER_IO_WAIT_TIME AS USER_IO_WAIT_TIME, ROWS_PROCESSED AS ROWS_PROCESSED, ELAPSED_TIME AS ELAPSED_TIME, CPU_TIME AS CPU_TIME, LARGE_QUERYS AS LARGE_QUERYS, DELAYED_LARGE_QUERYS AS DELAYED_LARGE_QUERYS, DELAYED_PX_QUERYS AS DELAYED_PX_QUERYS, OUTLINE_VERSION AS OUTLINE_VERSION, OUTLINE_ID AS OUTLINE_ID, OUTLINE_DATA AS OUTLINE_DATA, HINTS_INFO AS HINTS_INFO, HINTS_ALL_WORKED AS HINTS_ALL_WORKED, ACS_SEL_INFO AS ACS_SEL_INFO, TABLE_SCAN AS TABLE_SCAN, EVOLUTION AS EVOLUTION, EVO_EXECUTIONS AS EVO_EXECUTIONS, EVO_CPU_TIME AS EVO_CPU_TIME, TIMEOUT_COUNT AS TIMEOUT_COUNT, PS_STMT_ID AS PS_STMT_ID, SESSID AS SESSID, TEMP_TABLES AS TEMP_TABLES, IS_USE_JIT AS IS_USE_JIT, OBJECT_TYPE AS OBJECT_TYPE, PL_SCHEMA_ID AS PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT AS IS_BATCHED_MULTI_STMT FROM SYS.ALL_VIRTUAL_PLAN_STAT WHERE OBJECT_STATUS = 0 AND IS_IN_PC='1' )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID AS TENANT_ID, SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, PLAN_ID AS PLAN_ID, SQL_ID AS SQL_ID, TYPE AS TYPE, IS_BIND_SENSITIVE AS IS_BIND_SENSITIVE, IS_BIND_AWARE AS IS_BIND_AWARE, DB_ID AS DB_ID, STATEMENT AS STATEMENT, QUERY_SQL AS QUERY_SQL, SPECIAL_PARAMS AS SPECIAL_PARAMS, PARAM_INFOS AS PARAM_INFOS, SYS_VARS AS SYS_VARS, PLAN_HASH AS PLAN_HASH, FIRST_LOAD_TIME AS FIRST_LOAD_TIME, SCHEMA_VERSION AS SCHEMA_VERSION, LAST_ACTIVE_TIME AS LAST_ACTIVE_TIME, AVG_EXE_USEC AS AVG_EXE_USEC, SLOWEST_EXE_TIME AS SLOWEST_EXE_TIME, SLOWEST_EXE_USEC AS SLOWEST_EXE_USEC, SLOW_COUNT AS SLOW_COUNT, HIT_COUNT AS HIT_COUNT, PLAN_SIZE AS PLAN_SIZE, EXECUTIONS AS EXECUTIONS, DISK_READS AS DISK_READS, DIRECT_WRITES AS DIRECT_WRITES, BUFFER_GETS AS BUFFERS_GETS, APPLICATION_WAIT_TIME AS APPLICATION_WATI_TIME, CONCURRENCY_WAIT_TIME AS CONCURRENCY_WAIT_TIME, USER_IO_WAIT_TIME AS USER_IO_WAIT_TIME, ROWS_PROCESSED AS ROWS_PROCESSED, ELAPSED_TIME AS ELAPSED_TIME, CPU_TIME AS CPU_TIME, LARGE_QUERYS AS LARGE_QUERYS, DELAYED_LARGE_QUERYS AS DELAYED_LARGE_QUERYS, DELAYED_PX_QUERYS AS DELAYED_PX_QUERYS, OUTLINE_VERSION AS OUTLINE_VERSION, OUTLINE_ID AS OUTLINE_ID, OUTLINE_DATA AS OUTLINE_DATA, HINTS_INFO AS HINTS_INFO, HINTS_ALL_WORKED AS HINTS_ALL_WORKED, ACS_SEL_INFO AS ACS_SEL_INFO, TABLE_SCAN AS TABLE_SCAN, EVOLUTION AS EVOLUTION, EVO_EXECUTIONS AS EVO_EXECUTIONS, EVO_CPU_TIME AS EVO_CPU_TIME, TIMEOUT_COUNT AS TIMEOUT_COUNT, PS_STMT_ID AS PS_STMT_ID, SESSID AS SESSID, TEMP_TABLES AS TEMP_TABLES, IS_USE_JIT AS IS_USE_JIT, OBJECT_TYPE AS OBJECT_TYPE, PL_SCHEMA_ID AS PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT AS IS_BATCHED_MULTI_STMT, RULE_NAME AS RULE_NAME, PLAN_STATUS AS PLAN_STATUS, ADAPTIVE_FEEDBACK_TIMES AS ADAPTIVE_FEEDBACK_TIMES FROM SYS.ALL_VIRTUAL_PLAN_STAT WHERE OBJECT_STATUS = 0 AND IS_IN_PC='1' )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } @@ -315,7 +315,7 @@ int ObInnerTableSchema::v_ob_plan_cache_plan_stat_ora_schema(ObTableSchema &tabl table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset())); if (OB_SUCC(ret)) { - if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SVR_IP, SVR_PORT, PLAN_ID, SQL_ID, TYPE, IS_BIND_SENSITIVE, IS_BIND_AWARE, DB_ID, STATEMENT, QUERY_SQL, SPECIAL_PARAMS, PARAM_INFOS, SYS_VARS, PLAN_HASH, FIRST_LOAD_TIME, SCHEMA_VERSION, LAST_ACTIVE_TIME, AVG_EXE_USEC, SLOWEST_EXE_TIME, SLOWEST_EXE_USEC, SLOW_COUNT, HIT_COUNT, PLAN_SIZE, EXECUTIONS, DISK_READS, DIRECT_WRITES, BUFFERS_GETS, APPLICATION_WATI_TIME, CONCURRENCY_WAIT_TIME, USER_IO_WAIT_TIME, ROWS_PROCESSED, ELAPSED_TIME, CPU_TIME, LARGE_QUERYS, DELAYED_LARGE_QUERYS, DELAYED_PX_QUERYS, OUTLINE_VERSION, OUTLINE_ID, OUTLINE_DATA, HINTS_INFO, HINTS_ALL_WORKED, ACS_SEL_INFO, TABLE_SCAN, EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT, OBJECT_TYPE, PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT FROM SYS.GV$OB_PLAN_CACHE_PLAN_STAT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) { + if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SVR_IP, SVR_PORT, PLAN_ID, SQL_ID, TYPE, IS_BIND_SENSITIVE, IS_BIND_AWARE, DB_ID, STATEMENT, QUERY_SQL, SPECIAL_PARAMS, PARAM_INFOS, SYS_VARS, PLAN_HASH, FIRST_LOAD_TIME, SCHEMA_VERSION, LAST_ACTIVE_TIME, AVG_EXE_USEC, SLOWEST_EXE_TIME, SLOWEST_EXE_USEC, SLOW_COUNT, HIT_COUNT, PLAN_SIZE, EXECUTIONS, DISK_READS, DIRECT_WRITES, BUFFERS_GETS, APPLICATION_WATI_TIME, CONCURRENCY_WAIT_TIME, USER_IO_WAIT_TIME, ROWS_PROCESSED, ELAPSED_TIME, CPU_TIME, LARGE_QUERYS, DELAYED_LARGE_QUERYS, DELAYED_PX_QUERYS, OUTLINE_VERSION, OUTLINE_ID, OUTLINE_DATA, HINTS_INFO, HINTS_ALL_WORKED, ACS_SEL_INFO, TABLE_SCAN, EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT, OBJECT_TYPE, PL_SCHEMA_ID, IS_BATCHED_MULTI_STMT, RULE_NAME, PLAN_STATUS, ADAPTIVE_FEEDBACK_TIMES FROM SYS.GV$OB_PLAN_CACHE_PLAN_STAT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) { LOG_ERROR("fail to set view_definition", K(ret)); } } diff --git a/src/share/inner_table/ob_inner_table_schema.h b/src/share/inner_table/ob_inner_table_schema.h index 0d1e05878..d4c13d79d 100644 --- a/src/share/inner_table/ob_inner_table_schema.h +++ b/src/share/inner_table/ob_inner_table_schema.h @@ -103,7 +103,9 @@ struct ALL_VIRTUAL_PLAN_STAT_CDE { ERASE_TIME, COMPILE_TIME, PL_CG_MEM_HOLD, - PL_EVICT_VERSION + PL_EVICT_VERSION, + PLAN_STATUS, + ADAPTIVE_FEEDBACK_TIMES }; }; @@ -252,7 +254,9 @@ struct ALL_VIRTUAL_PLAN_STAT_ORA_CDE { ERASE_TIME, COMPILE_TIME, PL_CG_MEM_HOLD, - PL_EVICT_VERSION + PL_EVICT_VERSION, + PLAN_STATUS, + ADAPTIVE_FEEDBACK_TIMES }; }; diff --git a/src/share/inner_table/ob_inner_table_schema_def.py b/src/share/inner_table/ob_inner_table_schema_def.py index 0a3d2e3cb..8a9ca5e69 100755 --- a/src/share/inner_table/ob_inner_table_schema_def.py +++ b/src/share/inner_table/ob_inner_table_schema_def.py @@ -8509,6 +8509,8 @@ def_table_schema( ('compile_time', 'uint'), ('pl_cg_mem_hold', 'int'), ('pl_evict_version', 'int'), + ('plan_status', 'int'), + ('adaptive_feedback_times', 'int'), ], vtable_route_policy = 'distributed', partition_columns = ['svr_ip', 'svr_port'], @@ -16372,7 +16374,7 @@ def_table_schema( DELAYED_LARGE_QUERYS,DELAYED_PX_QUERYS,OUTLINE_VERSION,OUTLINE_ID,OUTLINE_DATA,ACS_SEL_INFO, TABLE_SCAN,EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT,OBJECT_TYPE,HINTS_INFO,HINTS_ALL_WORKED, PL_SCHEMA_ID, - IS_BATCHED_MULTI_STMT, RULE_NAME + IS_BATCHED_MULTI_STMT, RULE_NAME, PLAN_STATUS, ADAPTIVE_FEEDBACK_TIMES FROM oceanbase.__all_virtual_plan_stat WHERE OBJECT_STATUS = 0 AND is_in_pc=true """.replace("\n", " "), @@ -18095,7 +18097,7 @@ def_table_schema( DELAYED_LARGE_QUERYS,DELAYED_PX_QUERYS,OUTLINE_VERSION,OUTLINE_ID,OUTLINE_DATA,ACS_SEL_INFO, TABLE_SCAN,EVOLUTION, EVO_EXECUTIONS, EVO_CPU_TIME, TIMEOUT_COUNT, PS_STMT_ID, SESSID, TEMP_TABLES, IS_USE_JIT,OBJECT_TYPE,HINTS_INFO,HINTS_ALL_WORKED, PL_SCHEMA_ID, - IS_BATCHED_MULTI_STMT, RULE_NAME + IS_BATCHED_MULTI_STMT, RULE_NAME, PLAN_STATUS, ADAPTIVE_FEEDBACK_TIMES FROM oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT WHERE svr_ip=HOST_IP() AND svr_port=RPC_PORT() """.replace("\n", " "), @@ -61187,7 +61189,10 @@ def_table_schema( IS_USE_JIT AS IS_USE_JIT, OBJECT_TYPE AS OBJECT_TYPE, PL_SCHEMA_ID AS PL_SCHEMA_ID, - IS_BATCHED_MULTI_STMT AS IS_BATCHED_MULTI_STMT + IS_BATCHED_MULTI_STMT AS IS_BATCHED_MULTI_STMT, + RULE_NAME AS RULE_NAME, + PLAN_STATUS AS PLAN_STATUS, + ADAPTIVE_FEEDBACK_TIMES AS ADAPTIVE_FEEDBACK_TIMES FROM SYS.ALL_VIRTUAL_PLAN_STAT WHERE OBJECT_STATUS = 0 AND IS_IN_PC='1' """.replace("\n", " ") ) @@ -61258,7 +61263,10 @@ TEMP_TABLES, IS_USE_JIT, OBJECT_TYPE, PL_SCHEMA_ID, -IS_BATCHED_MULTI_STMT FROM SYS.GV$OB_PLAN_CACHE_PLAN_STAT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() +IS_BATCHED_MULTI_STMT, +RULE_NAME, +PLAN_STATUS, +ADAPTIVE_FEEDBACK_TIMES FROM SYS.GV$OB_PLAN_CACHE_PLAN_STAT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() """.replace("\n", " ") ) diff --git a/src/share/parameter/ob_parameter_seed.ipp b/src/share/parameter/ob_parameter_seed.ipp index 61e3a7d54..000f45254 100644 --- a/src/share/parameter/ob_parameter_seed.ipp +++ b/src/share/parameter/ob_parameter_seed.ipp @@ -2381,3 +2381,15 @@ DEF_INT(package_state_sync_max_size, OB_TENANT_PARAMETER, "8192", "[0, 16777216] DEF_CAP(_parquet_row_group_prebuffer_size, OB_CLUSTER_PARAMETER, "0M", "[0M,)", "the parquet prefetch maximum row group size. Range: [0, +∞)", ObParameterAttr(Section::SSTABLE, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); +DEF_TIME(_pc_adaptive_min_exec_time_threshold, OB_TENANT_PARAMETER, "1s", "[0, )", + "minimum execution time threshold for enabling adaptive plan cache. Range: [0, +∞]", + ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); +DEF_INT(_pc_adaptive_effectiveness_ratio_threshold, OB_TENANT_PARAMETER, "5", "[0, )", + "minimum effectiveness ratio threshold for enabling adaptive plan cache. Range:[0, +∞]", + ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); +DEF_BOOL(enable_adaptive_plan_cache, OB_TENANT_PARAMETER, "False", + "enable/disable adaptive plan cache", + ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); +DEF_BOOL(_force_enable_plan_tracing, OB_TENANT_PARAMETER, "True", + "controls whether plan tracking is enabled when plan cache is disabled", + ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result index e35009bc1..397a1ea47 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result @@ -93,6 +93,7 @@ direct_load_allow_fallback disk_io_thread_count dtl_buffer_size dump_data_dictionary_to_log_interval +enable_adaptive_plan_cache enable_async_syslog enable_auto_split enable_cgroup @@ -397,6 +398,7 @@ _faststack_min_interval _faststack_req_queue_size_threshold _fast_commit_callback_count _follower_snapshot_read_retry_duration +_force_enable_plan_tracing _force_explict_500_malloc _force_hash_groupby_dump _force_hash_join_spill @@ -477,6 +479,8 @@ _parallel_redo_logging_trigger _parallel_server_sleep_time _parquet_row_group_prebuffer_size _partition_wise_plan_enabled +_pc_adaptive_effectiveness_ratio_threshold +_pc_adaptive_min_exec_time_threshold _pdml_thread_cache_size _pipelined_table_function_memory_limit _preserve_order_for_pagination diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result index 8f3ad1175..6c84133f8 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_mysql.result @@ -83,6 +83,8 @@ HINTS_ALL_WORKED tinyint(4) NO NULL PL_SCHEMA_ID bigint(20) unsigned NO NULL IS_BATCHED_MULTI_STMT tinyint(4) NO NULL RULE_NAME varchar(256) NO NULL +PLAN_STATUS bigint(20) NO NULL +ADAPTIVE_FEEDBACK_TIMES bigint(20) NO NULL select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT limit 1); cnt 1 @@ -893,6 +895,8 @@ HINTS_ALL_WORKED tinyint(4) NO PL_SCHEMA_ID bigint(20) unsigned NO IS_BATCHED_MULTI_STMT tinyint(4) NO RULE_NAME varchar(256) NO +PLAN_STATUS bigint(20) NO +ADAPTIVE_FEEDBACK_TIMES bigint(20) NO select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_PLAN_CACHE_PLAN_STAT limit 1); cnt 1 diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result index 4cae96b01..5ad10601c 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_sys_views_in_sys.result @@ -84,6 +84,8 @@ HINTS_ALL_WORKED tinyint(4) NO NULL PL_SCHEMA_ID bigint(20) unsigned NO NULL IS_BATCHED_MULTI_STMT tinyint(4) NO NULL RULE_NAME varchar(256) NO NULL +PLAN_STATUS bigint(20) NO NULL +ADAPTIVE_FEEDBACK_TIMES bigint(20) NO NULL select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_PLAN_CACHE_PLAN_STAT limit 1); cnt 1 @@ -894,6 +896,8 @@ HINTS_ALL_WORKED tinyint(4) NO PL_SCHEMA_ID bigint(20) unsigned NO IS_BATCHED_MULTI_STMT tinyint(4) NO RULE_NAME varchar(256) NO +PLAN_STATUS bigint(20) NO +ADAPTIVE_FEEDBACK_TIMES bigint(20) NO select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_PLAN_CACHE_PLAN_STAT limit 1); cnt 1 diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result index ceb33022c..2875ac515 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_mysql.result @@ -381,6 +381,8 @@ erase_time timestamp(6) NO NULL compile_time bigint(20) unsigned NO NULL pl_cg_mem_hold bigint(20) NO NULL pl_evict_version bigint(20) NO NULL +plan_status bigint(20) NO NULL +adaptive_feedback_times bigint(20) NO NULL select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_plan_stat; IF(count(*) >= 0, 1, 0) 1 diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result index 625b29c63..368829fa0 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/desc_virtual_table_in_sys.result @@ -394,6 +394,8 @@ erase_time timestamp(6) NO NULL compile_time bigint(20) unsigned NO NULL pl_cg_mem_hold bigint(20) NO NULL pl_evict_version bigint(20) NO NULL +plan_status bigint(20) NO NULL +adaptive_feedback_times bigint(20) NO NULL select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_plan_stat; IF(count(*) >= 0, 1, 0) 1