如何找到tiflash里最占cpu资源的sql?

其实 tiflash cpu 高对应的就是扫描的数据多,扫描数据多又分两种情况

  1. 单次扫描数据不多,但是同样类型的sql执行了很多次,导致总体扫描的数据多
  2. 单次执行扫的数据就很多
    可以通过cluster_slow_query 中的 process_key 和 total_key 找到对应的 sql,找到的 sql 再通过执行计划去分辨一下是在tikv 执行的还是在tiflash执行的

可以参考以下sql(需要自行修改时间范围)

平均扫描 key 最多 key 的 SQL

select sum(total_keys)/count(digest) avg_keys,digest,min(query)
from CLUSTER_SLOW_QUERY
WHERE Time > ‘2022/02/12 12:00:00’
AND time < ‘2022/02/12 13:00:00’
group by digest
ORDER BY avg_keys DESC
LIMIT 10;

一段时间内 cop 处理过的 key 最多的 SQL

select sum(Process_keys),digest,min(query) from CLUSTER_SLOW_QUERY
WHERE Time > ‘2022/02/12 12:00:00’
AND time < ‘2022/02/12 13:00:00’
group by digest
ORDER BY sum(Process_keys) DESC
LIMIT 10;

3 个赞