---
title: 如何通过 SQL AUDIT 确定 SQL 的远程计划执行节点-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 如何通过 SQL AUDIT 确定 SQL 的远程计划执行节点相关的常见问题和使用技巧，帮助您快速解决 如何通过 SQL AUDIT 确定 SQL 的远程计划执行节点的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 如何通过 SQL AUDIT 确定 SQL 的远程计划执行节点

更新时间：2026-05-15 09:06

适用版本： V1.4.x、V2.1.x、V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：TechNote  

可以通过 `SELECT * FROM GV$SQL_AUDIT WHERE TRACE_ID ='xxxxx' AND IS_EXECUTOR_RPC=1 AND IS_INNER_SQL=0;` 来找到此 SQL 所有的远程计划所执行的节点。

#### 注意

OceanBase 数据库 V3.x、V4.x 版本中 SQL AUDIT 视图为 `GV$OB_SQL_AUDIT` 。

## 详细说明

一条 SQL 的所有执行上下文共用相同的 TRACE_ID，并且会完全记录到 SQL AUDIT 中，所以可以通过 TRACE_ID 过滤到此条 SQL 所有关联的信息。

SQL 在执行时会同时触发一些内部 SQL（INNER SQL），一般用于查询收集统计信息或更正元数据，这些 SQL 也都会记录到 SQL AUDIT 中并共用一个 TRACE_ID，所以我们需要过滤掉这些 INNER SQL，即 `IS_INNER_SQL=0`。

`IS_EXECUTOR_RPC` 代表此记录是否为RPC后的执行内容，`IS_EXECUTOR_RPC=0` 代表此 SQL 请求实际路由到的节点，即 SQL 的QC（查询协调者，Query Coordinator）`IS_EXECUTOR_RPC=1` 代表 RPC 执行记录，即 SQL 的 SQC（查询子协调者，Sub Query Coordinator）也就是远程计划中的远程执行节点的记录。

例如，如果表的 Leader 在 10 节点，但 SQL 请求发送到了 20 节点，OBServer 就需要将 SQL 通过 RPC 的方式转发到 10 节点上执行，此时 20 节点为 QC 节点，10 节点为 SQC 节点。所以最终记录到 SQL AUDIT 内的将会是两条记录：一条 QC 节点执行记录和一条 SQC 节点执行记录。

QC 节点执行记录完整记录了 SQL 的 SQL 文本（QUERY_SQL）、SQL_ID、PLAN_ID，但 SQC 节点执行记录这三者都为空，一般会被忽视过滤掉，但其记录的其他信息却在诊断问题时非常重要，例如执行耗时等，可以帮助我们直观感受到远程执行计划与本地执行计划的性能区别。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 适用版本

OceanBase 数据库所有版本。

上一篇

[SQL 执行报错 -4016，unexpected negative mem bound 的原因及解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002949202)

下一篇

[OceanBase 数据库中索引查询效率低于 Oracle 的问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000322503) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
