如何查询ob 数据库一周以前的慢SQL

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

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

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

如何查询ob 数据库一周以前的慢SQL
问题1 如果我知道 本周2数据库在10点到10点20分,存在cpu 过高的SQL., 如何用SQL 查询上周二 10点到10点20分 是否有 同样cpu 过高的SQL?
来进行对比?

日志采集场景: SQL性能问题
日志采集命令: obdiag gather scene run --scene=observer.perf_sql --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

为了查询一周以前的慢SQL,并对比上周二和本周二同一时间段(10点到10点20分)是否存在同样CPU过高的SQL,建议您使用obdiag工具进行相关SQL性能的日志采集。这将帮助我们获取必要的审计信息和性能数据。

另外,为了更准确地进行分析,请您提供以下信息:

  1. 您是否启用了SQL审计功能?因为要查询历史SQL记录,需要确保SQL审计是开启状态。
  2. 数据库连接参数(如主机地址、端口、用户名、密码等),以便我们能够正确配置obdiag命令中的db_connect参数。
  3. 是否有具体的trace_id或者事务ID与这些高CPU消耗的SQL相关联?如果有,请提供相关信息,这样可以更有针对性地收集日志。
  4. 能否分享一下当前数据库中关于SQL执行历史记录的相关表结构或视图定义?例如gv$sql_audit等,这有助于构建更精确的查询语句。

在收到上述信息后,我们可以进一步指导您如何构造具体的SQL查询来实现您的需求。同时,如果您能先运行上述obdiag命令并将生成的日志文件提供给我们,那将大大有助于后续的分析工作。

附上敏捷诊断工具 obdiag 使用帮助链接

看下OCP上还能查到不,如果查不到了,这个信息就没办法查了

参考楼上方法的在OCP上的sql诊断查看一下