---
title: SQL 中指定的 Hint 不生效-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于SQL 中指定的 Hint 不生效相关的常见问题和使用技巧，帮助您快速解决SQL 中指定的 Hint 不生效的难题。
---
切换语言

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

划线反馈

# SQL 中指定的 Hint 不生效

更新时间：2026-05-29 08:46

适用版本： 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  

## 适用版本

OceanBase 数据库所有版本。

## 问题现象

在 SQL 中指定 `/*+use_hash(a) Leading(c) */` 来让 c 与 a 执行 hash join，并把 c 作为 leading table。

```shell
obclient> SELECT /*+use_hash(a) Leading(c) */ c.c1,c.c2,sum(a.c3) c3，sum(a.c4) c4
FROM   tbc c INNER joint tba a
ON c.c0=a.c0 AND c.c1=a.c1
WHERE  c.c0='1' and c.c7='abc'
group by c.c1,c.c2;

```

```
===========================================
|ID|OPERATOR         |NAME |EST. ROWS|COST|
-------------------------------------------
|0 |NESTED-LOOP JOIN |     |10       |998 |
|1 | TABLE SCAN      |C    |10       |38  |
|2 | SUBPLAN SCAN    |VIEW1|1        |92  |
|3 |  MERGE GROUP BY |     |1        |92  |
|4 |   TABLE SCAN    |A    |2        |92  |
===========================================

    Used Hint:
-------------------------------------
  /*+
      LEADING(@"SEL$2" ("SYS.C"@"SEL$2" ))
  */

```

Explain 结果显示 Hint 未生效。

## 问题原因

因为需要对 A 表进行 GROUP BY 操作，实际与 C 表 Join 的是 GROUP BY 的结果 VIEW1，需要在 USE_HASH 中指定 VIEW1。

## 解决方法

在 Hint 中使用 view1 代替 a 表。

```shell
obclient> SELECT /*+use_hash(view1) Leading(c) */ c.c1,c.c2,sum(a.c3) c3，sum(a.c4) c4
FROM   tbc c INNER joint tba a
ON c.c0=a.c0 AND c.c1=a.c1
WHERE  c.c0='1' and c.c7='abc'
group by c.c1,c.c2;

```

```
=========================================
|ID|OPERATOR       |NAME |EST. ROWS|COST|
-----------------------------------------
|0 |HASH JOIN      |     |15       |1457|
|1 | TABLE SCAN    |C    |10       |38  |
|2 | SUBPLAN SCAN  |VIEW1|100      |1314|
|3 |  HASH GROUP BY|     |100      |1300|
|4 |   TABLE SCAN  |A    |990      |798 |
=========================================

    Used Hint:
-------------------------------------
  /*+
      LEADING(@"SEL$2" ("SYS.C"@"SEL$2" ))
      USE_HASH(@"SEL$2" ("VIEW1"@"SEL$2" ))
  */

```

上一篇

[MySQL 租户 SQL 执行报错误：-4016 内部错误](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000210000)

下一篇

[如何判定参数类型不一致导致硬解析，生成新的计划](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002342231) ![有帮助](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) 咨询热线
