在 OceanBase 数据库中,分布式计划(Distributed Execution Plan)涉及到查询跨多个节点执行的计划。

1. 查看慢查询日志或审计日志:
   - 开启慢查询日志并设置合适的时间范围,或者启用 SQL 审计,并配置审计选项,以记录执行时间超过阈值的分布式 SQL 语句。
    -- 配置慢查询日志
    ALTER SYSTEM SET slow_query_time = '1'; -- 设置慢查询时间阈值,单位为秒

    -- 查看慢查询日志
    SELECT * FROM information_schema.SLOW_QUERY WHERE sql_kind = 'Distributed';

   - 这将显示执行时间较长的分布式 SQL 查询,您可以从中获取详细信息。

2. 查询审计日志:
   - 启用 SQL 审计并配置审计选项,以记录分布式 SQL 语句的执行情况。
    ALTER SYSTEM SET audit_enable = true;
    ALTER SYSTEM SET audit_event = 'sql_statement';

   - 查询审计日志,关注分布式执行的 SQL 语句。
    SELECT * FROM information_schema.AUDIT_RECORD WHERE sql_kind = 'Distributed';

   - 这将提供有关分布式 SQL 查询的详细信息,包括执行时间、节点信息等。

3. 查看执行计划:
   - 使用 EXPLAIN 命令查看分布式 SQL 查询的执行计划。
    EXPLAIN PLAN FOR SELECT * FROM your_table WHERE your_condition;

   - 确保分布式计划中的节点和计划是符合预期的,避免不必要的远程操作或全表扫描。

4. 监控性能统计信息:
   - 使用性能监控工具或查询相关系统视图,监控分布式 SQL 查询的性能统计信息,包括各节点的响应时间、CPU 使用率、网络流量等。

5. 检查节点负载:
   - 查询 __all_virtual_cpu_stat、__all_virtual_memory_stat 等视图,检查每个节点的负载情况,确保节点之间的负载均衡。
    SELECT * FROM __all_virtual_cpu_stat;
    SELECT * FROM __all_virtual_memory_stat;

   - 确保节点负载分布均匀,避免某些节点过载。

6. 网络监控:
   - 使用网络监控工具检查数据库节点之间的网络流量,确保分布式查询的网络通信正常。

这些步骤可以帮助您诊断和解决分布式计划相关的查询问题。请确保在非生产环境中进行测试,以避免对实际业务的负面影响。


转载请注明出处:http://www.zyzy.cn/article/detail/11799/OceanBase