执行查询 select * from GV$OB_COMPACTION_DIAGNOSE_INFO 报60秒 query timeout

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】 OB
【 使用版本 】 5.7.25-OceanBase_CE-v4.3.5.4
【问题描述】执行查询 select * from GV$OB_COMPACTION_DIAGNOSE_INFO 报60秒 query timeout

-- 1. 临时设置会话级查询超时为5分钟(300秒),仅对当前连接生效
SET ob_query_timeout = 300000000;  -- 单位:微秒(300*1000000)
-- 2. 简化查询:只查核心字段,避免SELECT *(该视图字段超50个,很多字段无意义)
SELECT 
  tenant_id,        -- 租户ID
  svr_ip,           -- 服务器IP
  compaction_type,  -- 合并类型(MINOR/MAJOR)
  table_id,         -- 表ID
  start_time,       -- 合并开始时间
  end_time,         -- 合并结束时间
  status            -- 合并状态
FROM GV$OB_COMPACTION_DIAGNOSE_INFO
WHERE 1=1
  AND start_time >= '2025-01-01 00:00:00'  -- 缩小时间范围
  AND tenant_id = 1001;  -- 指定租户(避免查全集群所有租户)

分节点查询GV$OB_COMPACTION_DIAGNOSE_INFO 是集群级视图,可先登录单个 OBServer 节点,查询V$OB_COMPACTION_DIAGNOSE_INFO (单节点视图),避免跨节点扫描:

是查询太慢了,临时改超时是已知的办法

应该是有个节点执行慢,gv表是需要所有节点返回结果后才返回的。
可以查下 gv$ob_sql_audit 看下哪个节点执行慢,去对应节点看下是否有异常。

查询慢的原因是 OB 存在请求队列排队导致耗时异常,扩大租户内存后就缓解了。