基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
与查询策略相关的 Hint
更新时间:2023-07-24 17:45:58
与查询策略相关的 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 的语法如下:
/*+ USE_HASH_AGGREGATION*/
USE_HASH_AGGREGATION Hint 的示例如下:
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 的语法如下:
/*+ NO_USE_HASH_AGGREGATION*/
NO_USE_HASH_AGGREGATION Hint 的示例如下:
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 的语法如下:
/*+ USE_LATE_MATERIALIZATION*/
USE_LATE_MATERIALIZATION Hint 的示例如下:
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 的语法如下:
/*+ NO_USE_LATE_MATERIALIZATION*/
NO_USE_LATE_MATERIALIZATION Hint 的示例如下:
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 的语法如下:
/*+ USE_NL_MATERIALIZATION ( [ @queryblock ] tablespec [ tablespec ]... ) */
USE_NL_MATERIALIZATION Hint 的示例如下:
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 的语法如下:
/*+ NO_USE_NL_MATERIALIZATION ( [ @queryblock ] tablespec [ tablespec ]... ) */
NO_USE_NL_MATERIALIZATION Hint 的示例如下:
SELECT /*+ NO_USE_NL_MATERIALIZATION(departments) */ *
FROM employees, departments
WHERE employees.department_id = departments.department_id;