---
title: github-fill
description: Outline 相关 Hint Hint 名称 解释 BEGIN_OUTLINE_DATA outline data 起始标志。 END_OUTLINE_DATA outline data 结束标志。 QB_NAME 为查询块指定一个名称，以便在其他 Hint 中引用。 OPTIMIZER_FEATURES_ENAB…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.5 LTS

# Outline 相关 Hint

更新时间：2026-07-15 20:42:46

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.5/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/300.basic-elements-of-oracle-mode/600.annotation-of-oracle-mode/400.hint-of-oracle-mode/200.hint-list-of-oracle-mode/400.hints-related-to-outline-hints-of-oracle-mode.md)  

| Hint 名称 | 解释 |
| --- | --- |
| `BEGIN_OUTLINE_DATA` | outline data 起始标志。 |
| `END_OUTLINE_DATA` | outline data 结束标志。 |
| `QB_NAME` | 为查询块指定一个名称，以便在其他 Hint 中引用。 |
| `OPTIMIZER_FEATURES_ENABLE` | 查询计划生成优化器版本。 |

## OUTLINE DATA 结构

**OUTLINE DATA** 用于标识查询优化过程中的提示信息。有效的 OUTLINE DATA 结构示例如下：

```sql
SELECT /*+PARALLEL(2)*/ 1
FROM (SELECT c2 FROM t1 WHERE c1 = 1) v, t2
WHERE t2.c2 = v.c2;

/*+
  BEGIN_OUTLINE_DATA
  // 优化提示
  LEADING(@"SEL$6D1A4751" ("TEST.T1"@"SEL$2" "TEST.T2"@"SEL$1"))
  USE_HASH(@"SEL$6D1A4751" "TEST.T2"@"SEL$1")
  PQ_DISTRIBUTE(@"SEL$6D1A4751" "TEST.T2"@"SEL$1" NONE BROADCAST)
  PX_JOIN_FILTER(@"SEL$6D1A4751" "TEST.T2"@"SEL$1")
  FULL(@"SEL$6D1A4751" "TEST.T1"@"SEL$2")
  FULL(@"SEL$6D1A4751" "TEST.T2"@"SEL$1")
  // 转换提示
  MERGE(@"SEL$2" > "SEL$1")
  // 全局提示
  OPTIMIZER_FEATURES_ENABLE('4.0.0.0')
  PARALLEL(2)
  END_OUTLINE_DATA
*/

```

在 `BEGIN_OUTLINE_DATA` 与 `END_OUTLINE_DATA` 之间的提示信息中，若包含 `OPTIMIZER_FEATURES_ENABLE` 提示并指定了有效的优化器版本，这些提示将被识别为 OUTLINE DATA。

## `OPTIMIZER_FEATURES_ENABLE` Hint

`OPTIMIZER_FEATURES_ENABLE` Hint 用于指当前查询使用的优化器版本。

### 语法

```sql
/*+ OPTIMIZER_FEATURES_ENABLE ( version_number ) */

```

#### 参数解释

- `version_number`：为优化器版本。

### 示例

```sql
-- 使用 OPTIMIZER_FEATURES_ENABLE Hint 来指定优化器在生成执行计划时使用 4.0.0.0 版本的特性
SELECT /*+ OPTIMIZER_FEATURES_ENABLE('4.0.0.0') */ employee_id, last_name
FROM employees
WHERE last_name = 'Smith';

```

## `QB_NAME` Hint

`QB_NAME` Hint 允许为查询块指定一个名称，该名称随后可在其他 Hint 中引用该查询块。这使得在需要对查询的特定部分进行更精细的控制时变得非常有用。

更多信息，参见[使用 Query Block Name 和 QB_NAME Hint 控制查询优化](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002911535)

### 语法

```sql
/*+ QB_NAME(queryblock) */

```

#### 参数解释

- `qb_name` 忽略大小写，不能包含特殊字符，长度上限为 20。

#### 使用说明与注意事项

`QB_NAME` 在以下场景中无效：

- 同一层查询中指定多个合法的 `qb_name`。
 - 不同层查询中指定相同的 `qb_name`。

### 示例

```sql
-- 使用 QB_NAME Hint 为查询块命名为 'qb'，并使用 FULL Hint 强制对 employees 表进行全表扫描
SELECT /*+ QB_NAME(qb) FULL(@qb e) */ employee_id, last_name
FROM employees e
WHERE last_name = 'Smith';

```

 上一篇 下一篇 ![有帮助](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) 咨询热线
