OceanBase 與查詢策略相關(guān)的 Hint

2021-06-17 17:30 更新

USE_JIT Hint

?USE_JIT? Hint 指示服務器在執(zhí)行 SQL 語句時強制使用 JIT 模式編譯執(zhí)行表達式。

以下是 ?USE_JIT? Hint 的語法:

/*+ USE_JIT  */

示例如下:

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

NO_USE_JIT Hint

?NO_USE_JIT? Hint 指示服務器在執(zhí)行 SQL 語句時避免使用 JIT 模式編譯執(zhí)行表達式。

以下是 ?NO_USE_JIT? Hint 的語法:

/*+ NO_USE_JIT*/

示例如下:

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

USE_HASH_AGGREGATION Hint

?USE_HASH_AGGREGATION? Hint 指示優(yōu)化器在生成計劃時強制使用 HASH 聚合算法運行該 SQL 語句。

以下是 ?USE_HASH_AGGREGATION? Hint 的語法:

/*+ USE_HASH_AGGREGATION */

示例如下:

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 指示優(yōu)化器在執(zhí)行 SQL 語句時避免使用 HASH 聚合算法運行該語句。

以下是 ?NO_USE_HASH_AGGREGATION? Hint 的語法:

/*+ NO_USE_HASH_AGGREGATION */

示例如下:

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 指示優(yōu)化器延遲物化視圖。

以下是 ?USE_LATE_MATERIALIZATION? Hint 的語法:

/*+ USE_LATE_MATERIALIZATION  */

示例如下:

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 指示優(yōu)化器禁止延遲物化視圖。

以下是 ?NO_USE_LATE_MATERIALIZATION? Hint 的語法:

/*+ NO_USE_LATE_MATERIALIZATION  */

示例如下:

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 強制指示優(yōu)化器指定表為內(nèi)部表(子樹)時生成一個物化算子來緩存數(shù)據(jù)。

以下是 ?USE_NL_MATERIALIZATION? Hint 的語法:

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

示例如下:

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 強制指示優(yōu)化器在指定表為內(nèi)部表(子樹)時避免生成一個物化算子來緩存數(shù)據(jù)。

以下是 ?NO_USE_NL_MATERIALIZATION? Hint 的語法:

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

示例如下:

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


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號