diff --git a/src/observer/mysql/ob_query_response_time.cpp b/src/observer/mysql/ob_query_response_time.cpp index e0f89439585ef8406426060321b7e3c697ea7816..932256c127d297c86d17c644d82bc0d1f4b50286 100644 --- a/src/observer/mysql/ob_query_response_time.cpp +++ b/src/observer/mysql/ob_query_response_time.cpp @@ -137,10 +137,10 @@ int ObRSTCollector::collect_query_response_time(uint64_t tenant_id, uint64_t tim omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id)); if(tenant_config->query_response_time_stats){ ObRSTTimeCollector* time_collector; - if (OB_FAIL(ret = collector_map_.get_refactored(tenant_id, time_collector))){ + if (OB_FAIL(collector_map_.get_refactored(tenant_id, time_collector))){ SERVER_LOG(WARN, "time collector of the tenant does not exist", K(tenant_id), K(time), K(ret)); } else { - if(OB_FAIL(ret = time_collector->collect(time))){ + if(OB_FAIL(time_collector->collect(time))){ SERVER_LOG(WARN, "time collector of the tenant collect time failed", K(tenant_id), K(time), K(ret)); } } @@ -159,15 +159,15 @@ int ObRSTCollector::flush_query_response_time(uint64_t tenant_id,const ObString& SERVER_LOG(WARN, "invalid bool str", K(ret), K(is_enable), K(tenant_id)); } else if (is_enable_value) { ObRSTTimeCollector* time_collector; - if (OB_FAIL(ret = collector_map_.get_refactored(tenant_id, time_collector))){ + if (!tenant_config->query_response_time_stats){ + SERVER_LOG(WARN, "query_response_time_stats already turn off", K(ret), K(tenant_id)); + } else if (OB_FAIL(collector_map_.get_refactored(tenant_id, time_collector))){ SERVER_LOG(WARN, "time collector of the tenant does not exist", K(ret), K(tenant_id)); - } else { - if (OB_FAIL(ret = time_collector->setup(tenant_config->query_response_time_range_base))){ - SERVER_LOG(WARN, "time collector of the tenant set range base failed", K(ret), K(tenant_id)); - } else if (OB_FAIL(ret = time_collector->flush())){ - SERVER_LOG(WARN, "time collector of the tenant flush failed", K(ret), K(tenant_id)); - } - } + } else if (OB_FAIL(time_collector->setup(tenant_config->query_response_time_range_base))){ + SERVER_LOG(WARN, "time collector of the tenant set range base failed", K(ret), K(tenant_id)); + } else if (OB_FAIL(time_collector->flush())){ + SERVER_LOG(WARN, "time collector of the tenant flush failed", K(ret), K(tenant_id)); + } } return ret; } @@ -177,7 +177,7 @@ int ObRSTCollector::enable_query_response_time(uint64_t tenant_id){ omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id)); if(tenant_config->query_response_time_stats){ SERVER_LOG(INFO, "query_response_time_stats already turn on", K(ret), K(tenant_id)); - } else if (OB_FAIL(ret = collector_map_.set_refactored(tenant_id, new ObRSTTimeCollector()))) { + } else if (OB_FAIL(collector_map_.set_refactored(tenant_id, new ObRSTTimeCollector()))) { if (OB_HASH_EXIST == ret) { ret = OB_ERR_ALREADY_EXISTS; } @@ -188,9 +188,7 @@ int ObRSTCollector::enable_query_response_time(uint64_t tenant_id){ int ObRSTCollector::free_query_response_time(uint64_t tenant_id){ int ret = OB_SUCCESS; omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id)); - if(!tenant_config->query_response_time_stats){ - SERVER_LOG(INFO, "query_response_time_stats already turn off", K(ret), K(tenant_id)); - } else if (OB_FAIL(collector_map_.erase_refactored(tenant_id))) { + if (OB_FAIL(collector_map_.erase_refactored(tenant_id))) { SERVER_LOG(WARN,"erase the time collector failed", K(tenant_id)); } return ret; @@ -202,10 +200,10 @@ int ObRSTCollector::control_query_response_time(uint64_t tenant_id, const ObStri bool is_valid = false; is_enable_value = ObConfigBoolParser::get(is_enable.ptr(), is_valid); if (is_enable_value) { - if (OB_FAIL(ret = enable_query_response_time(tenant_id))){ + if (OB_FAIL(enable_query_response_time(tenant_id))){ SERVER_LOG(WARN, "enable the query response time failed", K(ret),K(tenant_id)); } - } else if (OB_FAIL(ret = free_query_response_time(tenant_id))){ + } else if (OB_FAIL(free_query_response_time(tenant_id))){ SERVER_LOG(WARN, "free the query response time failed", K(ret),K(tenant_id)); } return ret; diff --git a/src/sql/resolver/cmd/ob_show_resolver.cpp b/src/sql/resolver/cmd/ob_show_resolver.cpp index 1e4be76365e36160be9ab5460a0576a4a3efa061..5af0b65e28776f0e07c1a7567f6122bef53ba674 100644 --- a/src/sql/resolver/cmd/ob_show_resolver.cpp +++ b/src/sql/resolver/cmd/ob_show_resolver.cpp @@ -1113,7 +1113,8 @@ int ObShowResolver::resolve(const ParseNode& parse_tree) } else { show_resv_ctx.stmt_type_ = stmt::T_SHOW_QUERY_RESPONSE_TIME; GEN_SQL_STEP_1(ObShowSqlSet::SHOW_QUERY_RESPONSE_TIME); - GEN_SQL_STEP_2(ObShowSqlSet::SHOW_QUERY_RESPONSE_TIME, OB_SYS_DATABASE_NAME, OB_ALL_VIRTUAL_QUERY_RESPONSE_TIME_TNAME); + GEN_SQL_STEP_2(ObShowSqlSet::SHOW_QUERY_RESPONSE_TIME, + OB_SYS_DATABASE_NAME, OB_ALL_VIRTUAL_QUERY_RESPONSE_TIME_TNAME, real_tenant_id); } break; } @@ -2081,7 +2082,8 @@ DEFINE_SHOW_CLAUSE_SET(SHOW_ENGINES, NULL, "SELECT * FROM %s.%s ", NULL, NULL); DEFINE_SHOW_CLAUSE_SET(SHOW_PRIVILEGES, NULL, "SELECT * FROM %s.%s ", "SELECT * FROM %s.%s ", NULL); -DEFINE_SHOW_CLAUSE_SET(SHOW_QUERY_RESPONSE_TIME, NULL, "SELECT * FROM %s.%s ", NULL, NULL); +DEFINE_SHOW_CLAUSE_SET(SHOW_QUERY_RESPONSE_TIME, NULL, + "SELECT response_time as RESPONSE_TIME, count as COUNT, total as TOTAL FROM %s.%s where tenant_id = %lu", NULL, NULL); DEFINE_SHOW_CLAUSE_SET(SHOW_COLLATION, NULL, "SELECT collation AS `Collation`, charset AS `Charset`, id AS `Id`, is_default AS `Default`, is_compiled AS "