---
title: "与查询策略相关的 Hint - OceanBase 数据库 V4.0.0-preview | OceanBase 文档中心"
description: 与查询策略相关的 Hint 与查询策略相关的 Hint 包括 USE_HASH_AGGREGATION Hint、NO_USE_HASH_AGGREGATION Hint、USE_LATE_MATERIALIZATION Hint、NO_USE_LATE_MATERIALIZATION Hint、USE_NL_MAT…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

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

# 与查询策略相关的 Hint

更新时间：2023-07-24 17:45:58

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.0.0-preview/zh-CN/700.reference/400.development-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/500.hints-related-to-the-query-policy-of-oracle-mode.md)  

与查询策略相关的 Hint 包括 USE_HASH_AGGREGATION Hint、NO_USE_HASH_AGGREGATION Hint、USE_LATE_MATERIALIZATION Hint、NO_USE_LATE_MATERIALIZATION Hint、USE_NL_MATERIALIZATION Hint 和 NO_USE_NL_MATERIALIZATION Hint。

## USE_HASH_AGGREGATION Hint

`USE_HASH_AGGREGATION` Hint 指示优化器在生成计划时强制使用 HASH 聚合算法运行该 SQL 语句。

`USE_HASH_AGGREGATION` Hint 的语法如下：

```sql
/*+ USE_HASH_AGGREGATION*/

```

`USE_HASH_AGGREGATION` Hint 的示例如下：

```sql
SELECT /*+ USE_HASH_AGGREGATION */ e.department_id, sum(e.salary)
FROM employees e
WHERE e.department_id = 1001;
GROUP BY e.department_id;

```

## NO_USE_HASH_AGGREGATION Hint

`NO_USE_HASH_AGGREGATION` Hint 指示优化器在执行 SQL 语句时避免使用 HASH 聚合算法运行该语句。

`NO_USE_HASH_AGGREGATION` Hint 的语法如下：

```sql
/*+ NO_USE_HASH_AGGREGATION*/

```

`NO_USE_HASH_AGGREGATION` Hint 的示例如下：

```sql
SELECT /*+ NO_USE_HASH_AGGREGATION */ e.department_id, sum(e.salary)
FROM employees e
WHERE e.department_id = 1001;
GROUP BY e.department_id;

```

## USE_LATE_MATERIALIZATION Hint

`USE_LATE_MATERIALIZATION` Hint 指示优化器延迟物化视图。

`USE_LATE_MATERIALIZATION` Hint 的语法如下：

```sql
/*+ USE_LATE_MATERIALIZATION*/

```

`USE_LATE_MATERIALIZATION` Hint 的示例如下：

```sql
SELECT /*+ USE_LATE_MATERIALIZATION*/ e.department_id, sum(e.salary)
FROM employees e
WHERE e.department_id = 1001;
GROUP BY e.department_id;

```

## NO_USE_LATE_MATERIALIZATION Hint

`NO_USE_LATE_MATERIALIZATION` Hint 指示优化器禁止延迟物化视图。

`NO_USE_LATE_MATERIALIZATION` Hint 的语法如下：

```sql
/*+ NO_USE_LATE_MATERIALIZATION*/

```

`NO_USE_LATE_MATERIALIZATION` Hint 的示例如下：

```sql
SELECT /*+ NO_USE_LATE_MATERIALIZATION*/ e.department_id, sum(e.salary)
FROM employees e
WHERE e.department_id = 1001;
GROUP BY e.department_id;

```

## USE_NL_MATERIALIZATION Hint

`USE_NL_MATERIALIZATION` Hint 强制指示优化器指定表为内部表（子树）时生成一个物化算子来缓存数据。

`USE_NL_MATERIALIZATION` Hint 的语法如下：

```sql
/*+ USE_NL_MATERIALIZATION ( [ @queryblock ] tablespec [ tablespec ]... ) */

```

`USE_NL_MATERIALIZATION` Hint 的示例如下：

```sql
SELECT /*+ USE_NL_MATERIALIZATION(departments) */ *
FROM employees, departments
WHERE employees.department_id = departments.department_id;

```

## NO_USE_NL_MATERIALIZATION Hint

`NO_USE_NL_MATERIALIZATION` Hint 强制指示优化器在指定表为内部表（子树）时避免生成一个物化算子来缓存数据。

`NO_USE_NL_MATERIALIZATION` Hint 的语法如下：

```sql
/*+ NO_USE_NL_MATERIALIZATION ( [ @queryblock ] tablespec [ tablespec ]... ) */

```

`NO_USE_NL_MATERIALIZATION` Hint 的示例如下：

```sql
SELECT /*+ NO_USE_NL_MATERIALIZATION(departments) */ *
FROM employees, departments
WHERE employees.department_id = departments.department_id;

```

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