[CP] [#2024120900106380109]Fix sql_id,avg_exec_time column and add params_info,sys_vars for V$ob_pl_cache_obj

This commit is contained in:
bit-dance 2025-01-02 21:15:16 +00:00 committed by ob-robot
parent f1b8e41f6e
commit 8deaf933b7
10 changed files with 189 additions and 27 deletions

View File

@ -33,6 +33,7 @@ using namespace oceanbase;
using namespace sql;
using namespace observer;
using namespace common;
using namespace pl;
ObGVSql::ObGVSql()
:plan_id_array_(),
@ -207,16 +208,18 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p
case share::ALL_VIRTUAL_PLAN_STAT_CDE::SQL_ID: {
if (cache_stat_updated) {
ObString sql_id;
if (OB_NOT_NULL(pl_object)) {
if (OB_FAIL(ob_write_string(*allocator_,
pl_object->get_stat().sql_id_,
sql_id))) {
SERVER_LOG(ERROR, "copy sql_id failed", K(ret));
} else {
cells[i].set_varchar(sql_id);
cells[i].set_collation_type(ObCharset::get_default_collation(
ObCharset::get_default_charset()));
}
if (OB_NOT_NULL(pl_object)
&& (pl_object->get_ns() == ObLibCacheNameSpace::NS_CALLSTMT
|| pl_object->get_ns() == ObLibCacheNameSpace::NS_ANON)) {
if (OB_FAIL(ob_write_string(*allocator_,
pl_object->get_stat().sql_id_,
sql_id))) {
SERVER_LOG(ERROR, "copy sql_id failed", K(ret));
} else {
cells[i].set_varchar(sql_id);
cells[i].set_collation_type(ObCharset::get_default_collation(
ObCharset::get_default_charset()));
}
} else if (!cache_obj->is_sql_crsr()) {
cells[i].set_null();
} else if (OB_FAIL(ob_write_string(*allocator_,
@ -399,10 +402,12 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p
case share::ALL_VIRTUAL_PLAN_STAT_CDE::PARAM_INFOS: {
if (!cache_stat_updated) {
cells[i].set_null();
} else if (cache_obj->is_sql_crsr()) {
} else if (cache_obj->is_sql_crsr() ||
NULL != pl_object) {
ObString param_info_lob_str;
const ObString& param_infos = NULL != pl_object ? pl_object->get_stat().param_infos_ : plan->stat_.param_infos_;
if (OB_FAIL(ob_write_string(*allocator_,
plan->stat_.param_infos_,
param_infos,
param_info_lob_str))) {
SERVER_LOG(ERROR, "copy param_infos failed", K(ret));
} else {
@ -538,8 +543,12 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p
cells[i].set_int(0);
}
} else if (NULL != pl_object) {
if (pl_object->get_stat().execute_times_ != 0) {
cells[i].set_int(pl_object->get_stat().elapsed_time_ / pl_object->get_stat().execute_times_);
int64_t execute_times = 0;
int64_t elapsed_time = 0;
if (OB_FAIL(ObPLCacheObject::get_times(pl_object, execute_times, elapsed_time))) {
SERVER_LOG(WARN, "failed to get real AVG_EXE_USEC for package", K(ret), K(*pl_object));
} else if (execute_times != 0) {
cells[i].set_int(elapsed_time / execute_times);
} else {
cells[i].set_int(0);
}
@ -607,7 +616,13 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p
break;
}
case share::ALL_VIRTUAL_PLAN_STAT_CDE::PL_CG_MEM_HOLD: {
cells[i].set_int(0);
if (!cache_stat_updated) {
cells[i].set_null();
} else if (NULL != pl_object) {
cells[i].set_int(pl_object->get_stat().pl_cg_mem_hold_);
} else {
cells[i].set_int(0);
}
break;
}
case share::ALL_VIRTUAL_PLAN_STAT_CDE::EXECUTIONS: {
@ -616,7 +631,13 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p
} else if (cache_obj->is_sql_crsr()) {
cells[i].set_int(plan->stat_.execute_times_);
} else if (NULL != pl_object) {
cells[i].set_int(pl_object->get_stat().execute_times_);
int64_t execute_times = 0;
int64_t elapsed_time = 0;
if (OB_FAIL(ObPLCacheObject::get_times(pl_object, execute_times, elapsed_time))) {
SERVER_LOG(WARN, "failed to get real AVG_EXE_USEC for package", K(ret), K(*pl_object));
} else {
cells[i].set_int(execute_times);
}
} else {
cells[i].set_int(0);
}
@ -698,7 +719,13 @@ int ObGVSql::fill_cells(const ObILibCacheObject *cache_obj, const ObPlanCache &p
} else if (cache_obj->is_sql_crsr()) {
cells[i].set_uint64(static_cast<uint64_t>(plan->stat_.elapsed_time_));
} else if (NULL != pl_object) {
cells[i].set_uint64(static_cast<uint64_t>(pl_object->get_stat().elapsed_time_));
int64_t execute_times = 0;
int64_t elapsed_time = 0;
if (OB_FAIL(ObPLCacheObject::get_times(pl_object, execute_times, elapsed_time))) {
SERVER_LOG(WARN, "failed to get real AVG_EXE_USEC for package", K(ret), K(*pl_object));
} else {
cells[i].set_uint64(static_cast<uint64_t>(elapsed_time));
}
} else {
cells[i].set_uint64(0);
}

View File

@ -252,6 +252,9 @@ int ObPLCompiler::compile(
func.get_di_helper(),
lib::is_oracle_mode()) {
#endif
int64_t cg_jit_mem = 0;
ObPLCGMallocCallback pmcb(cg_jit_mem);
lib::ObMallocCallbackGuard memory_guard(pmcb);
lib::ObMallocHookAttrGuard malloc_guard(lib::ObMemAttr(MTL_ID(), GET_PL_MOD_STRING(OB_PL_CODE_GEN)));
uint64_t lock_idx = stmt_id != OB_INVALID_ID ? stmt_id : block_hash;
@ -298,6 +301,7 @@ int ObPLCompiler::compile(
|| OB_FAIL(schema_guard_.get_schema_version(OB_SYS_TENANT_ID, sys_schema_version))) {
LOG_WARN("fail to get schema version", K(ret), K(tenant_id));
} else {
func.get_stat_for_update().pl_cg_mem_hold_ = cg_jit_mem;
func.set_tenant_schema_version(tenant_schema_version);
func.set_sys_schema_version(sys_schema_version);
}
@ -496,6 +500,9 @@ int ObPLCompiler::compile(
func.get_di_helper(),
lib::is_oracle_mode()) {
#endif
int64_t cg_jit_mem = 0;
ObPLCGMallocCallback pmcb(cg_jit_mem);
lib::ObMallocCallbackGuard memory_guard(pmcb);
lib::ObMallocHookAttrGuard malloc_guard(lib::ObMemAttr(MTL_ID(), GET_PL_MOD_STRING(OB_PL_CODE_GEN)));
ObRoutinePersistentInfo::ObPLOperation op = ObRoutinePersistentInfo::ObPLOperation::NONE;
ObRoutinePersistentInfo routine_storage(
@ -532,6 +539,7 @@ int ObPLCompiler::compile(
OZ (func.set_tenant_sys_schema_version(schema_guard_, session_info_.get_effective_tenant_id()));
OX (func.set_ret_type(func_ast.get_ret_type()));
OX (func.get_stat_for_update().schema_version_ = routine.get_schema_version());
OX (func.get_stat_for_update().pl_cg_mem_hold_ = cg_jit_mem);
}
OZ (check_dep_schema(schema_guard_, func.get_dependency_table()));
} // end heap var
@ -897,6 +905,9 @@ int ObPLCompiler::compile_package(const ObPackageInfo &package_info,
package.get_di_helper(),
lib::is_oracle_mode()) {
#endif
int64_t cg_jit_mem = 0;
ObPLCGMallocCallback pmcb(cg_jit_mem);
lib::ObMallocCallbackGuard memory_guard(pmcb);
lib::ObMallocHookAttrGuard malloc_guard(lib::ObMemAttr(MTL_ID(), GET_PL_MOD_STRING(pl::OB_PL_CODE_GEN)));
// latch_id = (bucket_id % bucket_cnt_) / 8, so it is needed to multiply 8 to avoid consecutive ids being mapped to the same latch
@ -908,6 +919,7 @@ int ObPLCompiler::compile_package(const ObPackageInfo &package_info,
OZ (cg.init());
OZ (cg.generate(package));
OX (package.get_stat_for_update().pl_cg_mem_hold_ = cg_jit_mem);
}
}

View File

@ -17,6 +17,7 @@
#include "ob_pl_stmt.h"
#include "ob_pl_persistent.h"
#include "lib/hash/ob_hashmap.h"
#include "lib/alloc/ob_malloc_callback.h"
namespace oceanbase
{
@ -36,6 +37,25 @@ class ObPLPackageGuard;
class ObPLResolver;
class ObPLVarDebugInfo;
class ObRoutinePersistentInfo;
class ObPLCGMallocCallback final : public lib::ObMallocCallback
{
public:
ObPLCGMallocCallback(int64_t &mem_used)
: mem_used_(mem_used) {}
virtual ~ObPLCGMallocCallback() {}
virtual void operator()(const ObMemAttr &attr, int64_t add_size) override
{
if ((ObLabel(GET_PL_MOD_STRING(pl::OB_PL_JIT)) == attr.label_
|| ObLabel(GET_PL_MOD_STRING(pl::OB_PL_CODE_GEN)) == attr.label_)
&& attr.ctx_id_ == ObCtxIds::GLIBC) {
mem_used_ += add_size;
}
}
private:
int64_t &mem_used_;
}; // end of class ObPLCGMallocCallback
class ObPLCompiler
{
public:

View File

@ -15,6 +15,7 @@
#include "lib/oblog/ob_log_module.h"
#include "pl/pl_cache/ob_pl_cache.h"
#include "src/share/ob_truncated_string.h"
#include "pl/ob_pl_package.h"
namespace oceanbase
{
@ -128,6 +129,53 @@ int ObPLCacheObject::set_params_info(const ParamStore &params, bool is_anonymous
return ret;
}
int ObPLCacheObject::init_params_info_str()
{
int ret = OB_SUCCESS;
int64_t N = params_info_.count();
int64_t buf_len = N * ObPlParamInfo::MAX_STR_DES_LEN_PL + 1;
int64_t pos = 0;
char *buf = (char *)allocator_.alloc(buf_len);
if (OB_ISNULL(buf)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("fail to alloc memory for param info", K(ret));
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < N; i++) {
if (N - 1 != i) {
if (OB_FAIL(databuff_printf(buf, buf_len, pos, "{%d,%d,%d,%d,%d,%d,%ju},",
params_info_.at(i).flag_.need_to_check_type_,
params_info_.at(i).flag_.need_to_check_bool_value_,
params_info_.at(i).flag_.expected_bool_value_,
params_info_.at(i).scale_,
params_info_.at(i).type_,
params_info_.at(i).pl_type_,
params_info_.at(i).udt_id_
))) {
LOG_WARN("fail to buff_print param info", K(ret));
}
} else {
if (OB_FAIL(databuff_printf(buf, buf_len, pos, "{%d,%d,%d,%d,%d,%d,%ju}",
params_info_.at(i).flag_.need_to_check_type_,
params_info_.at(i).flag_.need_to_check_bool_value_,
params_info_.at(i).flag_.expected_bool_value_,
params_info_.at(i).scale_,
params_info_.at(i).type_,
params_info_.at(i).pl_type_,
params_info_.at(i).udt_id_
))) {
LOG_WARN("fail to buff_print param info", K(ret));
}
}
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(ob_write_string(allocator_, ObString(pos, buf), stat_.param_infos_))) {
LOG_WARN("fail to deep copy param infos", K(ret));
}
}
return ret;
}
int ObPLCacheObject::update_cache_obj_stat(sql::ObILibCacheCtx &ctx)
{
int ret = OB_SUCCESS;
@ -166,6 +214,10 @@ int ObPLCacheObject::update_cache_obj_stat(sql::ObILibCacheCtx &ctx)
}
}
}
if (OB_SUCC(ret) && OB_FAIL(init_params_info_str())) {
// init param info str
LOG_WARN("fail to init param info str", K(ret));
}
if (OB_SUCC(ret)) {
if (ObLibCacheNameSpace::NS_ANON == get_ns() && OB_INVALID_ID != pc_ctx.key_.key_id_) {
stat.ps_stmt_id_ = pc_ctx.key_.key_id_;
@ -192,5 +244,29 @@ int ObPLCacheObject::update_execute_time(int64_t exec_time)
return ret;
}
int ObPLCacheObject::get_times(const ObPLCacheObject *pl_object, int64_t& execute_times, int64_t& elapsed_time)
{
int ret = OB_SUCCESS;
CK (OB_NOT_NULL(pl_object));
if (OB_FAIL(ret)) {
} else if (FALSE_IT(execute_times = pl_object->get_stat().execute_times_)) {
} else if (FALSE_IT(elapsed_time = pl_object->get_stat().elapsed_time_)) {
} else if (ObLibCacheNameSpace::NS_PKG == pl_object->get_ns()) {
const ObPLPackage *package = static_cast<const ObPLPackage*>(pl_object);
if (NULL == package) {
LOG_WARN("failed to static cast ObPLPackage", K(ret), K(*pl_object));
ret = OB_ERR_UNEXPECTED;
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < package->get_routine_table().count(); ++i) {
if (OB_NOT_NULL(package->get_routine_table().at(i))) {
execute_times += package->get_routine_table().at(i)->get_stat().execute_times_;
elapsed_time += package->get_routine_table().at(i)->get_stat().elapsed_time_;
}
}
}
}
return ret;
}
}
}

View File

@ -55,6 +55,7 @@ struct ObPlParamInfo : public sql::ObParamInfo
uint8_t pl_type_;
uint64_t udt_id_;
static const int64_t MAX_STR_DES_LEN_PL = 96;
OB_UNIS_VERSION_V(1);
};
@ -90,7 +91,9 @@ struct PLCacheObjStat
int64_t pl_evict_version_;
int64_t schema_version_;
int64_t ps_stmt_id_;//prepare stmt id
int64_t pl_cg_mem_hold_;
common::ObString sys_vars_str_;
common::ObString param_infos_;
PLCacheObjStat()
: pl_schema_id_(OB_INVALID_ID),
@ -110,7 +113,9 @@ struct PLCacheObjStat
pl_evict_version_(OB_INVALID_ID),
schema_version_(OB_INVALID_ID),
ps_stmt_id_(OB_INVALID_ID),
sys_vars_str_()
pl_cg_mem_hold_(0),
sys_vars_str_(),
param_infos_()
{
sql_id_[0] = '\0';
}
@ -139,7 +144,9 @@ struct PLCacheObjStat
pl_evict_version_ = OB_INVALID_ID;
schema_version_ = OB_INVALID_ID;
ps_stmt_id_ = OB_INVALID_ID;
pl_cg_mem_hold_ = 0;
sys_vars_str_.reset();
param_infos_.reset();
}
TO_STRING_KV(K_(pl_schema_id),
@ -153,7 +160,9 @@ struct PLCacheObjStat
K_(type),
K_(pl_evict_version),
K_(schema_version),
K_(sys_vars_str));
K_(pl_cg_mem_hold),
K_(sys_vars_str),
K_(param_infos));
};
class ObPLCacheObject : public sql::ObILibCacheObject
@ -206,7 +215,9 @@ public:
inline PLCacheObjStat &get_stat_for_update() { return stat_; }
virtual int update_cache_obj_stat(sql::ObILibCacheCtx &ctx);
int init_params_info_str();
int update_execute_time(int64_t exec_time);
static int get_times(const ObPLCacheObject *pl_object, int64_t& execute_times, int64_t& elapsed_time);
TO_STRING_KV(K_(expr_op_size),
K_(tenant_schema_version),

View File

@ -162,7 +162,7 @@ int ObInnerTableSchema::gv_ob_pl_cache_object_schema(ObTableSchema &table_schema
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 AS CACHE_OBJECT_ID, STATEMENT AS PARAMETERIZE_TEXT, QUERY_SQL AS OBJECT_TEXT, FIRST_LOAD_TIME, LAST_ACTIVE_TIME, AVG_EXE_USEC, SLOWEST_EXE_TIME, SLOWEST_EXE_USEC, HIT_COUNT, PLAN_SIZE AS CACHE_OBJ_SIZE, EXECUTIONS, ELAPSED_TIME, OBJECT_TYPE, PL_SCHEMA_ID AS OBJECT_ID, COMPILE_TIME, SCHEMA_VERSION, PL_EVICT_VERSION, PS_STMT_ID, DB_ID, PL_CG_MEM_HOLD FROM oceanbase.__all_virtual_plan_stat WHERE OBJECT_STATUS = 0 AND TYPE > 5 AND TYPE < 11 AND is_in_pc=true )__"))) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, SVR_IP, SVR_PORT, PLAN_ID AS CACHE_OBJECT_ID, STATEMENT AS PARAMETERIZE_TEXT, QUERY_SQL AS OBJECT_TEXT, FIRST_LOAD_TIME, LAST_ACTIVE_TIME, AVG_EXE_USEC, SLOWEST_EXE_TIME, SLOWEST_EXE_USEC, HIT_COUNT, PLAN_SIZE AS CACHE_OBJ_SIZE, EXECUTIONS, ELAPSED_TIME, OBJECT_TYPE, PL_SCHEMA_ID AS OBJECT_ID, COMPILE_TIME, SCHEMA_VERSION, PL_EVICT_VERSION, PS_STMT_ID, DB_ID, PL_CG_MEM_HOLD, SYS_VARS, PARAM_INFOS FROM oceanbase.__all_virtual_plan_stat WHERE OBJECT_STATUS = 0 AND TYPE > 5 AND TYPE < 11 AND is_in_pc=true )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -213,7 +213,7 @@ int ObInnerTableSchema::v_ob_pl_cache_object_schema(ObTableSchema &table_schema)
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, CACHE_OBJECT_ID, PARAMETERIZE_TEXT, OBJECT_TEXT, FIRST_LOAD_TIME, LAST_ACTIVE_TIME, AVG_EXE_USEC, SLOWEST_EXE_TIME, SLOWEST_EXE_USEC, HIT_COUNT, CACHE_OBJ_SIZE, EXECUTIONS, ELAPSED_TIME, OBJECT_TYPE, OBJECT_ID, COMPILE_TIME, SCHEMA_VERSION, PL_EVICT_VERSION, PS_STMT_ID, DB_ID, PL_CG_MEM_HOLD FROM oceanbase.GV$OB_PL_CACHE_OBJECT 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, CACHE_OBJECT_ID, PARAMETERIZE_TEXT, OBJECT_TEXT, FIRST_LOAD_TIME, LAST_ACTIVE_TIME, AVG_EXE_USEC, SLOWEST_EXE_TIME, SLOWEST_EXE_USEC, HIT_COUNT, CACHE_OBJ_SIZE, EXECUTIONS, ELAPSED_TIME, OBJECT_TYPE, OBJECT_ID, COMPILE_TIME, SCHEMA_VERSION, PL_EVICT_VERSION, PS_STMT_ID, DB_ID, PL_CG_MEM_HOLD, SYS_VARS, PARAM_INFOS FROM oceanbase.GV$OB_PL_CACHE_OBJECT WHERE SVR_IP =HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}

View File

@ -1692,7 +1692,7 @@ int ObInnerTableSchema::gv_ob_pl_cache_object_ora_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 AS TENANT_ID, SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, PLAN_ID AS CACHE_OBJECT_ID, STATEMENT AS PARAMETERIZE_TEXT, QUERY_SQL AS OBJECT_TEXT, FIRST_LOAD_TIME AS FIRST_LOAD_TIME, 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, HIT_COUNT AS HIT_COUNT, PLAN_SIZE AS CACHE_OBJ_SIZE, EXECUTIONS AS EXECUTIONS, ELAPSED_TIME AS ELAPSED_TIME, OBJECT_TYPE AS OBJECT_TYPE, PL_SCHEMA_ID AS OBJECT_ID, COMPILE_TIME AS COMPILE_TIME, SCHEMA_VERSION AS SCHEMA_VERSION, PL_EVICT_VERSION AS PL_EVICT_VERSION, PS_STMT_ID AS PS_STMT_ID, DB_ID AS DB_ID, PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD FROM SYS.ALL_VIRTUAL_PLAN_STAT WHERE OBJECT_STATUS = 0 AND TYPE > 5 AND TYPE < 11 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 CACHE_OBJECT_ID, STATEMENT AS PARAMETERIZE_TEXT, QUERY_SQL AS OBJECT_TEXT, FIRST_LOAD_TIME AS FIRST_LOAD_TIME, 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, HIT_COUNT AS HIT_COUNT, PLAN_SIZE AS CACHE_OBJ_SIZE, EXECUTIONS AS EXECUTIONS, ELAPSED_TIME AS ELAPSED_TIME, OBJECT_TYPE AS OBJECT_TYPE, PL_SCHEMA_ID AS OBJECT_ID, COMPILE_TIME AS COMPILE_TIME, SCHEMA_VERSION AS SCHEMA_VERSION, PL_EVICT_VERSION AS PL_EVICT_VERSION, PS_STMT_ID AS PS_STMT_ID, DB_ID AS DB_ID, PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD, SYS_VARS AS SYS_VARS, PARAM_INFOS AS PARAM_INFOS FROM SYS.ALL_VIRTUAL_PLAN_STAT WHERE OBJECT_STATUS = 0 AND TYPE > 5 AND TYPE < 11 AND is_in_pc='1' )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
@ -1743,7 +1743,7 @@ int ObInnerTableSchema::v_ob_pl_cache_object_ora_schema(ObTableSchema &table_sch
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, CACHE_OBJECT_ID AS CACHE_OBJECT_ID, PARAMETERIZE_TEXT AS PARAMETERIZE_TEXT, OBJECT_TEXT AS OBJECT_TEXT, FIRST_LOAD_TIME AS FIRST_LOAD_TIME, 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, HIT_COUNT AS HIT_COUNT, CACHE_OBJ_SIZE AS CACHE_OBJ_SIZE, EXECUTIONS AS EXECUTIONS, ELAPSED_TIME AS ELAPSED_TIME, OBJECT_TYPE AS OBJECT_TYPE, OBJECT_ID AS OBJECT_ID, COMPILE_TIME AS COMPILE_TIME, SCHEMA_VERSION AS SCHEMA_VERSION, PL_EVICT_VERSION AS PL_EVICT_VERSION, PS_STMT_ID AS PS_STMT_ID, DB_ID AS DB_ID, PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD FROM SYS.GV$OB_PL_CACHE_OBJECT WHERE SVR_IP =HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
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, CACHE_OBJECT_ID AS CACHE_OBJECT_ID, PARAMETERIZE_TEXT AS PARAMETERIZE_TEXT, OBJECT_TEXT AS OBJECT_TEXT, FIRST_LOAD_TIME AS FIRST_LOAD_TIME, 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, HIT_COUNT AS HIT_COUNT, CACHE_OBJ_SIZE AS CACHE_OBJ_SIZE, EXECUTIONS AS EXECUTIONS, ELAPSED_TIME AS ELAPSED_TIME, OBJECT_TYPE AS OBJECT_TYPE, OBJECT_ID AS OBJECT_ID, COMPILE_TIME AS COMPILE_TIME, SCHEMA_VERSION AS SCHEMA_VERSION, PL_EVICT_VERSION AS PL_EVICT_VERSION, PS_STMT_ID AS PS_STMT_ID, DB_ID AS DB_ID, PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD, SYS_VARS AS SYS_VARS, PARAM_INFOS AS PARAM_INFOS FROM SYS.GV$OB_PL_CACHE_OBJECT WHERE SVR_IP =HOST_IP() AND SVR_PORT = RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}

View File

@ -34198,7 +34198,9 @@ def_table_schema(
PL_EVICT_VERSION,
PS_STMT_ID,
DB_ID,
PL_CG_MEM_HOLD
PL_CG_MEM_HOLD,
SYS_VARS,
PARAM_INFOS
FROM oceanbase.__all_virtual_plan_stat WHERE OBJECT_STATUS = 0 AND TYPE > 5 AND TYPE < 11 AND is_in_pc=true
""".replace("\n", " "),
normal_columns = [
@ -34236,7 +34238,9 @@ def_table_schema(
PL_EVICT_VERSION,
PS_STMT_ID,
DB_ID,
PL_CG_MEM_HOLD
PL_CG_MEM_HOLD,
SYS_VARS,
PARAM_INFOS
FROM oceanbase.GV$OB_PL_CACHE_OBJECT WHERE SVR_IP =HOST_IP() AND SVR_PORT = RPC_PORT()
""".replace("\n", " "),
@ -67936,7 +67940,9 @@ def_table_schema(
PL_EVICT_VERSION AS PL_EVICT_VERSION,
PS_STMT_ID AS PS_STMT_ID,
DB_ID AS DB_ID,
PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD
PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD,
SYS_VARS AS SYS_VARS,
PARAM_INFOS AS PARAM_INFOS
FROM SYS.ALL_VIRTUAL_PLAN_STAT WHERE OBJECT_STATUS = 0 AND TYPE > 5 AND TYPE < 11 AND is_in_pc='1'
""".replace("\n", " "),
normal_columns = [
@ -67975,7 +67981,9 @@ def_table_schema(
PL_EVICT_VERSION AS PL_EVICT_VERSION,
PS_STMT_ID AS PS_STMT_ID,
DB_ID AS DB_ID,
PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD
PL_CG_MEM_HOLD AS PL_CG_MEM_HOLD,
SYS_VARS AS SYS_VARS,
PARAM_INFOS AS PARAM_INFOS
FROM SYS.GV$OB_PL_CACHE_OBJECT WHERE SVR_IP =HOST_IP() AND SVR_PORT = RPC_PORT()
""".replace("\n", " "),
normal_columns = [

View File

@ -5747,6 +5747,8 @@ PL_EVICT_VERSION bigint(20) NO NULL
PS_STMT_ID bigint(20) NO NULL
DB_ID bigint(20) unsigned NO NULL
PL_CG_MEM_HOLD bigint(20) NO NULL
SYS_VARS varchar(4096) NO NULL
PARAM_INFOS longtext NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_PL_CACHE_OBJECT limit 1);
cnt
1
@ -5775,6 +5777,8 @@ PL_EVICT_VERSION bigint(20) NO
PS_STMT_ID bigint(20) NO
DB_ID bigint(20) unsigned NO
PL_CG_MEM_HOLD bigint(20) NO
SYS_VARS varchar(4096) NO
PARAM_INFOS longtext NO
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_PL_CACHE_OBJECT limit 1);
cnt
1

View File

@ -8058,6 +8058,8 @@ PL_EVICT_VERSION bigint(20) NO NULL
PS_STMT_ID bigint(20) NO NULL
DB_ID bigint(20) unsigned NO NULL
PL_CG_MEM_HOLD bigint(20) NO NULL
SYS_VARS varchar(4096) NO NULL
PARAM_INFOS longtext NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_PL_CACHE_OBJECT limit 1);
cnt
1
@ -8086,6 +8088,8 @@ PL_EVICT_VERSION bigint(20) NO
PS_STMT_ID bigint(20) NO
DB_ID bigint(20) unsigned NO
PL_CG_MEM_HOLD bigint(20) NO
SYS_VARS varchar(4096) NO
PARAM_INFOS longtext NO
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_PL_CACHE_OBJECT limit 1);
cnt
1