---
title: 弱读 SQL 所访问分区涉及多个日志流时因需要发送 RPC 请求而导致变慢-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 弱读 SQL 所访问分区涉及多个日志流时因需要发送 RPC 请求而导致变慢相关的常见问题和使用技巧，帮助您快速解决 弱读 SQL 所访问分区涉及多个日志流时因需要发送 RPC 请求而导致变慢的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 弱读 SQL 所访问分区涉及多个日志流时因需要发送 RPC 请求而导致变慢

更新时间：2026-05-18 01:51

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

弱读 SQL 所访问的分区，如果涉及多个日志流、SQL 的执行计划属于 Uncertain 的执行计划或租户开启了弱读单调读（`enable_monotonic_weak_read=true`）时，会发送 RPC 请求 GTS Leader 节点，若会话所在节点与 GTS Leader 节点两节点之间网络延迟高，则 SQL 的耗时会变高。

## 详细说明

在一般情况下，弱读 SQL 只需访问本地节点，无需访问其他机器，故常用于两地三中心或三地五中心的跨城部署架构，直接访问只读 Zone 以减少 SQL 执行的网络延迟。但在某些情况下，弱读 SQL 需要访问 GTS Leader 节点来获取准确的 GTS，具体如下。

- 开启了单调读（`enable_monotonic_weak_read=true`）需要发送 RPC。
 - SQL 所需访问的分区跨越了日志流。
 - 执行计划属于 Uncertain 的执行计划。

而因为三地五中心的架构，弱读访问的只读 Zone 与 GTS Leader 之间的网络延迟可能非常高，是 SQL 在 Leader 节点上执行的数百倍，当弱读 SQL 请求 Leader 节点时会因为 GTS 请求导致耗时大大增加。 判断弱读请求是否发送了 RPC，可以通过弱读语句的 sql audit 中的 `RPC_COUNT` 字段来确认，若 `RPC_COUNT` 不等于 0，则证明发送了 RPC。

![image001](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/performance/202241028sqlrpc001.png)

若各个节点间的网络延迟确实无法降低，建议更改为主备租户的架构，弱读 SQL 访问备租户。

## 影响租户

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

## 适用版本

OceanBase 数据库 V4.x 版本。

Previous

[OBServer 并发线程数过多导致租户登录慢或 SQL 执行慢](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000207665)

Next

[执行计划中 operator 和 name 展示不一致](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003891636) ![有帮助](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) 咨询热线
