oceanbase sql响应时间

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

oceanbase sql响应时间是不断增加的吗

计算某个租户的sql延迟时间

select /* MONITOR_AGENT */ con_id tenant_id, sum(value) from v$sysstat where stat_id IN (40000, 40001) and (con_id > 1000 or con_id = 1) and class < 1000 group by tenant_id;
±----------±------------+
| tenant_id | sum(value) |
±----------±------------+
| 1 | 54800765946 |
| 1001 | 0 |
| 1002 | 2447091101 |

1分钟以后
select /* MONITOR_AGENT */ con_id tenant_id, sum(value) from v$sysstat where stat_id IN (40000, 40001) and (con_id > 1000 or con_id = 1) and class < 1000 group by tenant_id;
±----------±------------+
| tenant_id | sum(value) |
±----------±------------+
| 1 | 54801756155 |
| 1001 | 0 |
| 1002 | 2447332949 |

计算sys的sql响应时间
(54801756155- 54800765946)/1000/60=

根据您提供的信息,您正在计算某个租户的 SQL 响应时间。这里我们可以通过查询 v$sysstat 视图来获取 SQL 响应时间的变化情况。具体来说,您已经展示了如何通过查询 v$sysstat 视图来获取某个租户在不同时间点的 SQL 响应时间统计数据,并计算出这段时间内的平均响应时间。

计算 SQL 响应时间

  1. 查询 v$sysstat 视图获取初始数据

    select /* MONITOR_AGENT */ con_id tenant_id, sum(value) from v$sysstat 
    where stat_id IN (40000, 40001) and (con_id > 1000 or con_id = 1) and class < 1000  
    group by tenant_id;
    
  2. 等待一段时间后再次查询 v$sysstat 视图获取更新后的数据

    select /* MONITOR_AGENT */ con_id tenant_id, sum(value) from v$sysstat 
    where stat_id IN (40000, 40001) and (con_id > 1000 or con_id = 1) and class < 1000  
    group by tenant_id;
    
  3. 计算响应时间的变化

    • 初始数据:
      +-----------+-------------+
      | tenant_id | sum(value)  |
      +-----------+-------------+
      |         1 | 54800765946 |
      |      1001 |           0 |
      |      1002 |  2447091101 |
      
    • 更新后的数据:
      +-----------+-------------+
      | tenant_id | sum(value)  |
      +-----------+-------------+
      |         1 | 54801756155 |
      |      1001 |           0 |
      |      1002 |  2447332949 |
      
  4. 计算 sys 租户的 SQL 响应时间变化

    • 响应时间变化:54801756155 - 54800765946 = 990209
    • 时间间隔:1分钟(60秒)
    • 平均响应时间:990209 / 1000 / 60 ≈ 16.5 毫秒

解释

  • stat_id 4000040001 分别对应 SQL 的执行时间和等待时间。
  • sum(value) 表示在这段时间内所有 SQL 请求的总响应时间。
  • 通过计算两次查询结果的差值,可以得到这段时间内的总响应时间变化。
  • 最后,将总响应时间变化除以时间间隔(秒),再转换为毫秒,即可得到平均响应时间。

结论

根据您的计算,sys 租户在1分钟内的平均 SQL 响应时间约为 16.5 毫秒。这表明在这段时间内,SQL 响应时间并不是不断增加的,而是有一定的波动。如果您发现响应时间持续增加,可能需要进一步检查系统负载、资源使用情况等因素。

详情请参考:

  1. SQL FAQ
  2. SQL 调优常见问题
  3. 查询中使用时间函数
  4. 实时执行计划展示
  5. 手动收集统计信息
  6. 计划缓存概述
  7. SQL 监控概述
  8. 查询 SQL 流量分布情况及 QPS
  9. 监控告警
  10. WR 概述