OceanBase性能相关

news/2024/11/13 9:41:40/
                          **OceanBase 关于SQL监控与执行计划记录**

记录来源:(OceanBase)DBA 从入门到实践
一、慢SQL与性能视图
慢SQL参数说明:

V3.2.3前
trace_log_slow_query_watermark 默认是 100ms。
V3.2.3及后续
trace_log_slow_query_watermark 默认是 1s。

慢SQL性能查看视图

GV$OB_SQL_AUDIT  所有集群的租户下的所有信息
V$OB_SQL_AUDIT   当前租户下的所有信息
需要查询当前问题SQL的情况下,需要关闭sql AUdit功能,防止问题SQL被淘汰,动态生效
alter system set enable_sql_audit=true;
alter system set enable_sql_audit=false;
set global ob_enable_sql_audit=OFF;
set global ob_enable_sql_audit=ON;
当前租户下的SQL audit占用租户的内存的3%
set global ob_sql_audit_percentage=3 
OB手动淘汰
alter system flush sql audit tenant=tenant_name;

慢SQL的统计语句

#慢sql统计
select 
tenant_id,request_id,usec_to_time(request_time),elapsed_time,
queue_time,execute_time,query_sql
from oceanbase.GV$OB_SQL_AUDIT
where tenant_id=租户id and elapsed_time > 100000
and request_time > time_to_usec('datetime')
order by elapsed_time desc limit 5;#查看租户资源最多的SQL,对标OCP中的TOPSQL查看
select SQL_ID,avg(ELAPSED_TIME),AVG(QUEUE_TIME),AVG(ROW_CACHE_HIT+BLOOM_FILTER_CACHE_HIT+BLOCK_CACHE_HIT+DISK_READS) AVG_LOGICAL_READ,
AVG(EXECUTE_TIME) AVG_EXEC_TIME,COUNT(*) CNT,AVG(EXECUTE_TIME-TOTAL_WAIT_TIME_MICRO) avg_cpu_time,
avg(TOTAL_WAIT_TIME_MICRO) avg_wait_time,wait_class,avg(retry_cnt),query_sql
from oceanbase.GV$OB_SQL_AUDIT
GROUP BY SQL_ID
ORDER BY avg_exec_time * cnt desc 
limit 10;#SQL监控视图 真实的执行计划记录GV$OB_PLAN_CACHE_PLAN_EXPLAN
select * from oceanbase.DBA_OB_DATABASES;
select last_trace_id();
#获取真实执行计划过程,获取IP,端口,执行计划ID,SQL
select tenant_id,svr_ip,svr_port,plan_id,query_sql
from oceanbase.gv$ob_sql_audit
where trace_id=''#根据上述获取的信息查询真实执行计划
select * from oceanbase.GV$OB_PLAN_CACHE_PLAN_EXPLAIN
WHERE tenant_id=租户id
and svr_ip=''
and svr_port=
and plan_id=;

执行计划查看方法

EXPLAIN  + DQL
explain select * from t1;
EXPLAIN NOADDR + DQL
注释:addr 输出的地址信息,一般需要OB的捏研发工程师查看,所以使用NOADDR进行打印执行计划

执行计划中的扩展信息记录

OUTPUT 表示查询输出的字段
filter 表示过滤条件,nil值表示null
rowset 表示一次批过滤量,降低资源使用的情况下,可以加快速度
access 表示访问的信息,包括索引,字段,分区等
partitions 表示使用的分区,也可以根据此信息知道是否发生了分区裁剪
is_index_back 确认是否发生了回表
is_global_index 确认是否使用了全局索引

优化信息(Optimization Info):OB官网未解释,但是OB的DBA入门到实践一书中有提及,如下。

table_rows  上一个合并版本SSTable中的表的行数,可以简单理解为t1表的行数。physical_range_rows  表需要扫描的物理行数,如果走了索引的话,含义为t1表在索引上需要扫描的物理行数。注意(delete 语句并不是真实的删除数据,只是标记为delete,该记录会增加扫描的物理扫描行数)logical_range_rows  表示需要扫描的逻辑行数(不包括delete标记的行,所以可能小于物理扫描行数)index_back_rows 回表的行数,如果是全表或者覆盖索引时,该值为0output_rows  预估输出行数,在上面的计划中,表示表在过滤后的行数。table_dop  表扫描的并行度(并行度)
dop_method  决定表扫描并行度的原因 。(创建表示指定表的并行度,AutoDOP优化器基于代价选择的并行度(参数 auto dop),global parallel(parallel hit或系统变量设置的并行度))。avaible_index_name  表可用的索引列表。pruned_index_name  当前的查询基于优化器的规则,任务不应该使用的索引列表。unstable_index_name  如果存在,表示被裁剪的主表路径。stats version  表统计信息版本号,如果为0,没有统计信息,表示需要搜集版本信息。dynamic sampling level 动态采样等级,如果值为0。没有使用动态采样。estimation method 表示行估计方式
(DEFAULT:表示使用默认统计信息
STORAGE:使用存储层实时估行
STATS:使用统计信息估行)Plan Type 计划类型:Local,Remote,DistributedNote  表示备注信息,比如(Degree of Parallelisim is 1 because of table property)表示当前表的并行度为1。

http://www.ppmy.cn/news/1520418.html

相关文章

【贪心算法】区间类算法题(整数替换、俄罗斯套娃、重构字符串等、C++)

文章目录 1. 前言2. 算法题1.整数替换2.俄罗斯套娃信封问题3.可被三整除的最大和4.距离相等的条形码5.重构字符串 1. 前言 贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优决策的算法。贪心算法通常用来解决最优化问题&#xff0c…

惠中科技光伏清洗剂:科技创新引领绿色清洁新风尚

惠中科技光伏清洗剂:科技创新引领绿色清洁新风尚 在光伏产业蓬勃发展的今天,光伏板的清洁问题日益凸显,成为影响发电效率的关键因素之一。面对传统清洗方法效率低、成本高、环境影响大等痛点,惠中科技以科技创新为驱动&#xff0…

Spring 源码解读:自定义依赖注入机制与其核心原理

引言 依赖注入(Dependency Injection, DI)是现代软件开发中的一个关键概念,特别是在Spring框架中,它被广泛应用来解耦组件之间的依赖关系。通过这种设计模式,开发者能够创建更加灵活和可维护的系统。这篇文章将带你深…

uni-app支持Vue 3的组件库推荐几个

uni-app支持Vue 3的组件库有多个,这些组件库为开发者提供了丰富的UI组件和工具,帮助开发者快速构建多端应用。以下是一些支持Vue 3的uni-app组件库: iui Design: 简介:iui Design是一款专为uni-app框架打造的Vue3 UI组…

win10使用系统自带照片查看器的步骤

1、按【winr】组合快捷键,输入:regedit,打开注册表 2、依次点击展开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations 3、在FileAssociations项的右侧窗口,右击选择【新建…

将一个结构体的地址传入给一个函数,这个函数将此结构体的地址传给另一个函数,为什么跑不起来,原因尽然是……

1.test函数 void testInitList(SL* sl) {//SL sl;//在创建结构体对象的时候就把这个结构体的地址定下来了,要改变其内部,需传递地址SQLinitList(sl);//无敌之精华,写入csdn }void test_pushback() {SL sl;//SQLinitList(&sl);testInitLi…

C++:泛型如何使用

在 C 中,泛型(或模板)是一种强大的编程机制,用于编写可以处理不同数据类型的通用代码。泛型通过模板实现,使得代码在编译时生成具体类型的实现。主要有两种类型的模板:函数模板 和 类模板。 函数模板 函数…

Spring Boot 多数据源配置(JPA)

目录 前言 前置环境 pom yml Entity Dao Config Controller 演示 前言 一般一个系统至少有一个数据源,用来持久化业务数据以及查询。单个数据源的系统很常见,在 Spring Boot 框架下配置也很简单。在约定大于配置这个思想下,只需要在…