OceanBase性能相关

                          **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 回表的行数,如果是全表或者覆盖索引时,该值为0

output_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,Distributed

Note  表示备注信息,比如(Degree of Parallelisim is 1 because of table property)表示当前表的并行度为1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值