1. 使用慢查询日志查询 TOP N 请求:
- 配置慢查询日志并设置合适的时间范围,以获取在指定时间段内执行时间最长的 SQL 语句。
-- 开启慢查询日志
ALTER SYSTEM SET slow_query_time = '1'; -- 设置慢查询时间阈值,单位为秒
-- 查询慢查询日志,按照执行时间降序排列
SELECT * FROM information_schema.SLOW_QUERY WHERE sql_execute_start >= 'start_time' AND sql_execute_start <= 'end_time' ORDER BY total_execution_time DESC LIMIT N;
- 替换 'start_time' 和 'end_time' 为您想要的时间范围,这将返回在指定时间段内执行时间最长的前 N 条慢查询记录。
2. 审计 SQL 查询并查询 TOP N:
- 启用 SQL 审计并配置审计选项,以记录 SQL 语句的执行情况。
ALTER SYSTEM SET audit_enable = true;
ALTER SYSTEM SET audit_event = 'sql_statement';
- 查询审计日志,按照执行时间降序排列,获取在指定时间段内执行时间最长的前 N 条 SQL 语句。
SELECT * FROM information_schema.AUDIT_RECORD WHERE occur_time >= 'start_time' AND occur_time <= 'end_time' AND sql_execute_total_elapsed_time IS NOT NULL ORDER BY sql_execute_total_elapsed_time DESC LIMIT N;
- 替换 'start_time' 和 'end_time' 为您想要的时间范围。
请注意,这些查询中的时间条件应根据您实际需要的时间段进行调整。确保在非生产环境中测试这些查询,以避免对实际业务产生负面影响。
转载请注明出处:http://www.zyzy.cn/article/detail/11796/OceanBase