[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:
parent
f1b8e41f6e
commit
8deaf933b7
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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 ¶ms, 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -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),
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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 = [
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user