OceanBase 查询慢时如何排查?

OceanBase 查询慢时如何排查?

3 个赞

打个执行计划先()

2 个赞

OceanBase提供两张虚拟表 v$sql_audit , gv$sql_audit 记录最近一段时间sql执行历史,v$sql_audit 存储本机的sql执行历史, gv$sql_audit 存储整个集群的sql执行历史

定位到慢SQL后,以租户身份登录OceanBase进入对应database,通过 desc $table$ 和 explain $slow_sql$ 检查表是否建立了有效索引或执行计划是否正确

查询v$sql_audit表,如查询某租户执行时间大于1s的SQL*fromv$sql_auditwheretenant_id=andelapsed_time>1000000 limit 10;

查询SQL执行时间按秒分布的直方图
select round(elapsed_time/1000000), count(*) from v$sql_audit where tenant_id = $tenant_id$ group by 1;

2 个赞

如果你用OCP管理工具,也可以用ocp中很直观查看,很容易发现慢sql

2 个赞

楼上说的ocp 确实,目前我们基本都不黑屏,二线我看也不怎么登录黑屏查。ocp 完全够用

2 个赞