1. 使用慢查询日志查询 TOP N SQL:
- 配置慢查询日志,并查看慢查询日志,以获取执行时间较长的 SQL 语句。
-- 开启慢查询日志
ALTER SYSTEM SET slow_query_time = '1'; -- 设置慢查询时间阈值,单位为秒
-- 查询慢查询日志
SELECT * FROM information_schema.SLOW_QUERY ORDER BY total_execution_time DESC LIMIT N;
- 上述查询将返回执行时间最长的前 N 条慢查询记录。
2. 审计 SQL 查询并查询 TOP N:
- 启用 SQL 审计并配置审计选项,以记录 SQL 语句的执行情况。
ALTER SYSTEM SET audit_enable = true;
ALTER SYSTEM SET audit_event = 'sql_statement';
- 查询审计日志,按照执行时间降序排列,获取 TOP N SQL 语句。
SELECT * FROM information_schema.AUDIT_RECORD WHERE sql_execute_total_elapsed_time IS NOT NULL ORDER BY sql_execute_total_elapsed_time DESC LIMIT N;
3. 查看性能统计信息获取 TOP N SQL:
- 查询 __all_virtual_sql_audit_stat 视图,按照执行时间降序排列,获取 TOP N SQL 语句。
SELECT * FROM __all_virtual_sql_audit_stat ORDER BY total_elapsed_time DESC LIMIT N;
- 这个视图提供了有关 SQL 请求的统计信息,包括执行次数、总响应时间等。
请注意,上述方法中的 N 表示要获取的 SQL 语句的数量。确保在实际应用中根据需要进行调整。此外,确保在非生产环境中测试这些查询,以避免对实际业务产生负面影响。
转载请注明出处:http://www.zyzy.cn/article/detail/11795/OceanBase